`
isiqi
  • 浏览: 16489771 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

我的 C/C++ 代码风格

阅读更多

---------------------------------------------------------------------------

★ 空行

在每个类声明之后、每个函数定义结束之后都要加空行。

在一个函数体内,逻辑上密切相关的语句之间不加空行,其它地方应加空行分隔。

---------------------------------------------------------------------------

★ 变量

1. 通则

不要节约变量的使用,也就是说,不要把同一个变量用于多种用途。尤其是指针变量。
-- 理由:这样可以防止造成混乱。如果一个变量用于多种用途,很容易到最后把自己都弄糊涂。


2. 变量定义

指针、引用类型的变量一行定义一个。

初始化的数组变量一行定义一个。

要单独注释的变量一行定义一个。

其他变量最好也一行定义一个。


3. 变量初始化

最好在变量定义时初始化,尤其是指针变量。
-- 理由:这样可以防止以后修改代码时在变量定义和初始化语句之间加代码而造成错误。

---------------------------------------------------------------------------

一行代码只写一条语句。

if, for, while, do 等语句自占一行。不论执行语句有多少都要加花括号。花括号应独占一行并且位于同一列,同时与引用它们的语句左对齐。
-- 理由:这样可以防止书写失误。

---------------------------------------------------------------------------

★ 空格

在定义指针和引用时,* 和 & 前后各留一个空格(但多级指针多个 * 之间不留空格)。在解引用和取地址时,* 和 & 与后面的标识符间不留空格。
-- 理由:突出指针和引用类型的定义,防止犯错。

二元操作符的前后应当加空格。

一元操作符如前后不加空格。

"[]", ".", "->" 前后不加空格。

if, for, while, do 等关键字之后应留一个空格再跟左括号,以突出关键字。

函数名之后不要留空格,紧跟左括号。

左括号向后紧跟,右括号、逗号、分号向前紧跟,紧跟处不留空格。

逗号之后要留空格。如果分号不是一行的结束符号(例如 for 语句中的情况),其后要留空格。

【未确定的一些做法】对于表达式比较长的 for 语句和 if 语句,紧凑起见可以按优先级先后顺序去掉一些空格,如 for (i=0; i<10; i++) 和 if ((a<=b) && (c<=d))。

---------------------------------------------------------------------------

★ 缩进

只用空格,不用制表符。

程序一级缩进四个空格。

续行缩进八个空格,再续行时逻辑深一级多缩进四个空格,依此类推。如下例所示:
if (a_very_long_name_variable_a && a_very_long_name_variable_b
&& (a_very_long_name_variable_c || a_very_long_name_variable_d))
{
}
if (a_very_long_name_variable_a && a_very_long_name_variable_b
&& (a_very_long_name_variable_c || a_very_long_name_variable_d
|| a_very_long_name_variable_e))
{
}
if (a_very_long_name_variable_a && a_very_long_name_variable_b
&& (a_very_long_name_variable_c || a_very_long_name_variable_d
|| a_very_long_name_variable_e)
&& (a_very_long_name_variable_f || a_very_long_name_variable_g))
{
}

switch 语句和 case 语句对齐(处于同一级缩进上)。

---------------------------------------------------------------------------

★ 长行拆分

代码行最大长度一般控制在 80 个字符以内。
-- 理由:代码行过长,眼睛看不过来,而且在设置了自动折行的编辑器中影响阅读,也不便于打印。

长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。

---------------------------------------------------------------------------

★ 类的版式

将 public 部分(接口函数)写在前面,而将 private 部分(私有数据)写在后面。
-- 理由:这样做不仅让自己在设计类时思路清晰,而且方便别人阅读。用户最关心的是接口!

---------------------------------------------------------------------------

★ 注释格式

行尾注释与代码之间空一格。

两行及以上的块注释格式:
/*
* 函数介绍:
* 输入参数:
* 输出参数:
* 返回值:
*/

if-else 语句注释格式:
/*
* comments of if part
*/
if (...)
{
// codes
}
/*
* comments of else part
*/
else
{
// codes
}

---------------------------------------------------------------------------

★ 注释

注释通常用于:
(1) 版本、版权声明。
(2) 函数接口说明(一般应包括函数介绍、输入参数、输出参数和返回值)。
(3) 重要的代码行或段落提示。

虽然注释有助于理解代码,但注意不可过多地使用注释。

注释是对代码的“提示”,而不是文档。程序中的注释不可喧宾夺主,注释太多了会让人眼花缭乱。注释的花样要少。

如果代码本来就是清楚的,则不必加注释。否则多此一举,令人厌烦。

边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。

注释应当准确、易懂,防止注释有二义性。错误的注释不但无益反而有害。

尽量避免在注释中使用缩写,特别是不常用缩写。

注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不可放在下方。

当代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注释,便于阅读。

---------------------------------------------------------------------------

分享到:
评论

相关推荐

    [转载]很好用的C/C++代码风格化工具

    本文将详细介绍一种非常实用的C/C++代码风格化工具——"uncrustify"。 Uncrustify是一个开源的代码格式化器,专门用于整理C、C++、C#、Objective-C、D、PHP、Java、JavaScript、Python等语言的代码风格。它的主要...

    uncrustify C/C++代码风格化工具

    **uncrustify:C/C++代码风格化工具详解** 在软件开发过程中,代码风格的一致性和可读性至关重要。为了确保团队成员之间的代码风格统一,提高代码的可维护性,开发者常常会使用代码格式化工具。`uncrustify`就是...

    C/C++代码规范

    C/C++代码规范是指在编写C或C++程序时所遵循的一系列编程规则和约定,其目的是为了提高代码的可读性、可维护性,以及便于团队协作。一个良好的代码规范可以减少代码中的错误,提升代码质量,同时还能帮助开发者更快...

    Qt C/C++代码统计工具

    **Qt C/C++代码统计工具** Qt是一个跨平台的应用程序开发框架,主要使用C++语言编写,它提供了丰富的GUI库和非GUI库,使得开发者能够创建功能强大的桌面、移动及嵌入式应用。本项目是一个基于Qt的C/C++代码统计工具...

    Dev-cpp5.4.0及API帮助文档 2018年蓝桥杯C语言/c++

    此外,文档还可能强调比赛的代码风格、效率要求和时间限制,这些都是竞赛中至关重要的因素。 【Dev-Cpp】:这个压缩包中的Dev-Cpp可能是安装程序或已经解压好的开发环境,包含GCC编译器、MinGW等必要的开发工具。...

    高质量C/C++代码风格编程指南(林锐博士版)

    ### 高质量C/C++代码风格编程指南(林锐博士版) #### 一、概述 林锐博士编写的《高质量C/C++编程指南》是一部针对C/C++编程语言的编程风格指南,旨在帮助程序员提高代码质量和可维护性。该指南不仅涵盖了程序结构...

    C/C++ 标准库函数 (中文版)

    C/C++标准库函数手册是C/C++程序员必备的参考资料,它详细地介绍了C/C++语言中各种标准库函数的用途、语法和使用方式。...掌握这些基础知识点和库函数的使用,是编写高质量、高效、可维护的C/C++代码的基石。

    Celerity C/C++源代码阅读和维护器

    支持标准及k&r风格的c/c++。对每一个打开的源代码工程,通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的源文件、所有的头文件、词汇索引、文件包含关系、宏定义、数据结构和函数定义、函数...

    林锐 《高质量C/C++编程》

    * 代码行内的空格:在编写C/C++程序时,需要使用空格来分隔不同的代码元素,以提高代码的可读性和可维护性。 * 对齐:在编写C/C++程序时,需要使用对齐来提高代码的可读性和可维护性。 * 长行拆分:在编写C/C++...

    C/C++代码自动缩进生成器

    标题中的"C/C++代码自动缩进生成器"是一款专门针对C和C++编程语言设计的工具,其主要功能是帮助程序员自动调整代码的缩进,以实现代码的整洁和规范。在编程过程中,代码的缩进是至关重要的,它不仅提高了代码的...

    达内c/c++代码,课堂上的源代码

    6. **编程规范与最佳实践**:学习C/C++时,了解并遵循良好的编程习惯,如注释编写、代码风格、错误处理、内存管理等,都是提高代码可读性和维护性的关键。 7. **跨平台编程**:C/C++的跨平台特性使得同一份代码可以...

    C/C++程序四书五经

    - **内容亮点**:本书全面覆盖了C99、C89、传统C语言、各版本C运行库以及编写与C++兼容的C代码等知识体系,无论是初学者还是专业人士,都能从中找到所需的信息。 - **适宜读者**:适合所有阶段的C语言学习者,尤其...

    c和c++代码精粹--优秀的代码

    本文将深入探讨C和C++代码精粹,揭示其中的优秀实践和核心知识点,帮助读者提升编程技能。 1. **C语言基础** - **指针**:C语言的灵魂在于指针,理解指针的使用、动态内存分配以及指针运算至关重要。 - **预...

    C/C++代码分析、阅读

    R风格的C/C++。对每一个源代码工程,通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的源文件、所有的头文件、词汇索引、文件包含关系、宏定义、数据结构和函数定义、分文件夹的定义目录、...

    C/C++ 常见误区

    【C/C++常见误区详解】 在C/C++编程中,遵循标准和良好的编程习惯至关重要,因为这直接影响到代码的可读性、移植性和维护性。...遵循这些最佳实践和避免误区,能够帮助开发者写出更高效、可维护的C/C++代码。

    Financial Applications Using Excel Add-in Development in C/C++

    书中通过丰富的示例代码展示了各种概念和技术的应用,这些示例代码遵循了一套统一的编码风格,确保了代码的可读性和一致性。 #### 三、技术重点 - **C/C++与Excel集成**:书中详细介绍了如何利用C/C++语言特性结合...

    高质量C/C++编程指南

    《高质量C/C++编程指南》是由上海贝尔实验室的著名计算机科学家林锐...通过深入学习《高质量C/C++编程指南》,开发者能够更好地掌握C/C++语言,写出更高效、更健壮、更易于维护的代码,从而提升软件开发的整体质量。

    C/C++中文函数手册

    《C/C++中文函数手册》是一份非常实用的编程资源,专为C和C++开发者设计,提供了详尽的函数库信息和速查指南。这份手册涵盖了C语言库函数和C++ API,对于初学者和有经验的程序员来说都是一个宝贵的参考资料。 C语言...

    C/C++/Java代码缩进美化工具astyle-1.24

    它可以帮助程序员统一代码风格,使得代码更易读、更美观,提升代码质量。 **描述详解:** 该工具名为Artistic Style(简称AStyle),版本号为1.24,它的主要功能是对C、C++和Java的源代码进行缩进和格式化处理。...

    大量C/C++笔试题

    C/C++作为编程语言中的老牌强手,广泛应用于系统编程、应用开发和嵌入式领域。这份“大量C/C++笔试题”集合涵盖了从基础知识到深入概念的各种问题,旨在帮助求职者在面试过程中表现出色。以下是一些重要的C/C++知识...

Global site tag (gtag.js) - Google Analytics