您的位置:首页 > 编程语言 > C语言/C++

C/C++个人代码风格

2017-03-15 16:55 183 查看
1 .1排版
1-1:程序块要采用缩进风格编写,缩进的空格数为4个。
1-2:相对独立的程序块之间、变量说明之后必须加空行。
1-3:较长的语句(>80字符)要分成多行书写
1-4::不允许把多个短语句写在一行中,即一行只写一条语句。  
1-5:if、for、do、while等语句的执行语句部分无论多少行都要加括号{}。
1-6:对齐只使用空格键,不使用TAB键。
1-7:函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。
1-8:程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一列
1-9:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。
1-10:在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之 前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符 (如->),后不应加空格。 采用这种松散方式编写代码的目的是使代码更加清晰。

(1) 逗号、分号只在后面加空格。
int a, b, c;  
(2)比较操作符, 赋值操作符"="、"+=",算术操作符"+"、"%",逻辑操
作符"&&"、"&",位域操作符"<<"、"^"等双目操作符的前后加空格。
a = b + c;
(3)"!"、"~"、"++"、"--"、"&"(地址运算符)等单目操作符前后不加
空格。
*p = 'a';        // 内容操作"*"与内容之间

flag = !isEmpty; // 非操作"!"与内容之间

p = &mem;        // 地址操作"&" 与内容之间

i++;             // "++","--"与内容之间 

(4)"->"、"."前后不加空格。
p->id = pid;     // "->"指针前后不加空格 

(5) if、for、while、switch 等与后面的括号间应加空格,使if等关
键字更为突出、明显。
if (a >= b && c > d)

(6)可以用括号来明确运算顺序。

(7).符合赋值运算符汝+=不能用空格空开。

 
1.2 注释
2-1:一般情况下,源程序有效注释量必须在20%以上。

4000
2-2:文件头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、修改日志等。

2-3:函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用关系(函数、表)等。
2-4:边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。
2-5:注释的内容要清楚、明了,含义准确,防止注释二义性。
2-6:注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。
2-7:变量、常量、宏的注释应放在其上方相邻位置或右方。
2-8:对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释放在此域的右方。
2-9:全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。
2-10:注释与所描述内容进行同样的缩排。
2-11:避免在一行代码或表达式的中间插入注释。
2-12:通过对函数或过程、变量、结构等正确的命名以及合理地组织代码的结构,使代码成为自注释的。
2-13:注释格式尽量统一,注释格式用//
2-14:将注释与其上面的代码用空行隔开
2-15:对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。

说明:这些语句往往是程序实现某一特定功能的关键,对于维护人员来说, 良好的注释帮助更好的理解程序,有时甚至优于看设计文档。

2-16:对于 switch 语句下的case 语句,如果因为特殊情况需要处理完一个 case 后进入下一个 case 处理,必须在该case 语句处理完、下一个 case 语句前加上明确的注释。 有效防止无故遗漏 break 语句。
 
1.3 命名
3-1:标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。
3-2:命名中若使用特殊约定或缩写,则要有注释说明。
3-3:对于变量命名,禁止取单个字符(如i、j、k...),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i、j、k 作局部循环变量是允许的。
3-4:不用数字或较奇怪的字符来定义标识符。
3-5:用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。
3-6:自己特有的命名风格,要自始至终保持一致,不可来回变化。
3-7.命名要用英文,可以出现英文、下划线、数字。

3-8.文件命名要用小写字母,名字反映出文件的内容,缩写单词要小写,文件名要用名词不要用动词。

3-9变量命名一律小写,缩写词汇要大写,要使用名词,可以使用“_”表示从属关系。局部循环控制变量用 i,j,n,k,指针变量用p_开头,加上名词。

3-10.数组命名首字母要大写,其它同变量。

3-11.函数命名单词首字母大写,形式可以是“函数名_描述函数功能的动词”,尽量写出主谓格式。

3-12.使用typedef定义新类型,一个单词首字母大写。

3-13.宏命名全部大写

  
1.4 函数、过程
4-1:对所调用函数的错误返回码要仔细、全面地处理。
4-2:明确函数功能,精确(而不是近似)地实现函数设计。
4-3:函数的规模尽量限制在200行以内。
说明:不包括注释和空格行。
4-4:一个函数仅完成一件功能,不要设计多用途面面俱到的函数。
说明:多功能集于一身的函数,很可能使函数的理解、测试、维护等变得困难。
4-5:函数的功能应该是可以预测的,也就是只要输入数据相同就应产生同样的输出。
4-6:检查函数所有参数输入的有效性。
4-8:检查函数所有非参数输入的有效性,如数据文件、公共变量等。
4-9:函数名应准确描述函数的功能。
4-10:函数的返回值要清楚、明了,让使用者不容易忽视错误情况。
4-11:让函数在调用点显得易懂、容易理解。
4-12:在调用函数填写参数时,应尽量减少没有必要的默认数据类型转换或强制数据类型转换。
4-13:减少函数本身或函数间的递归调用。
4-14:改进模块中函数的结构,降低函数间的耦合度,并提高函数的独立性以及代码可读性、效率和可维护性。优化函数结构时,要遵守以下原则:
(1)不能影响模块功能的实现。
(2)仔细考查模块或函数出错处理及模块的性能要求并进行完善。
(3)通过分解或合并函数来改进软件结构。
(4)考查函数的规模,过大的要进行分解。
(5)降低函数间接口的复杂度。
(6)不同层次的函数调用要有较合理的扇入、扇出。
(7)函数功能应可预测。
4-15:避免使用BOOL参数。
4-16:对于提供了返回值的函数,在引用时最好使用其返回值。
1.5 宏
5-1:用宏定义表达式时,要使用完备的括号。
5-2:将宏所定义的多条表达式放在大括号中。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: