`
talin2010
  • 浏览: 501960 次
  • 性别: 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++代码风格化工具[转载]很好用的C/C++代码风格化工具

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

    非常好用的代码风格化工具 支持大多数常见的风格, 如Linux, Mono, Gnu等

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

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

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

    林锐博士的经典C/C++编程风格指南,包括程序的版式、命名规则、表达式和基本语句、函数设计等章节,而且举了很多例子,都是公司笔试中常出现的,是一本提高编程质量很好很好的电子书。

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

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

    VSCode C/C++ Clang自定义样式文件.clang-format

    VSCode C/C++ Clang自定义样式文件.clang-format。 基于Google样式,根据自己的习惯修改。 见博文:https://blog.csdn.net/hxiaohai/article/details/100705224

    C/C++高质量编程

    C/C++编程人员必读,对于软件开发人员的C/C++编程修养有极大提高,编写出高质量的c/c++代码,风格清晰,运行可靠

    DEV C++.zip 资源下载 适合C/C++初学者

    Dev-C++(或者叫做 Dev-Cpp)是 Windows 环境下的一个轻量级(适合C/C++初学者) C/C++ 集成开发环境(IDE)。它是一款自由软件,遵守GPL许可协议分发源代码。它集合了功能强大的源码编辑器、MingW64/TDM-GCC 编译器...

    迅捷 C/C++源代码阅读和维护软件

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

    用VIM编写C/C++程序

    VIM也支持根据GNU的风格自动缩进,这样程序员编写出来的代码就更易阅读,而且也有利于培养好的编程风格。用下面这些命令在VIM中查看有关自动缩进的帮助:“:h cindent”、“:h cinoptions”、“:h cinoptions-values...

    高质量C C++编程-C++/C编程风格

    高质量C C++编程 论述C++/C编程风格,内存管理...

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

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

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

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

    C/C++源代码分析器迅捷10.6.1.0

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

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

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

    迅捷(Celerity):功能强大的C/C++源代码阅读和维护器。

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

    c/c++编程规划(好的编程风格)

    一本介绍c/c++编程规划的好书,从版本控制 到 代码风格都有详细说明。

    C语言编程规约(形成良好的代码风格)

    C语言编程规约 关于代码风格的 形成良好的代码风格

    Notepad++ 代码格式化插件(C/C++/C#/Java)

    找了很久; 使用方法: 将.dll(一般是unicode版本)放入(Notepad++安装位置)/plugins下面,重启就行;...后缀名要改为C/C++/C#/Java这几种语言格式的后缀才能实现自动格式化效果,如果是.txt就会有提示; Enjoy it!

    c/c++优秀编程风格指南

    无论任何时候,一个优秀的程序员,必然都有非常规范的编程风格. 如果代码风格不规范,很难让别人相信你的编程水平。阅读本书吧,它能让你做得更专业

Global site tag (gtag.js) - Google Analytics