Linux C语言编码风格
2016-08-30 16:58
211 查看
最近看了《Linux C编程一站式学习》觉得编码风格还是挺重要的,在学习的过程中在博客中做下相关总结,应该会对自己的编码风格印象深刻些,希望自己以后都能遵守这样的好的编码风格。原文地址:http://docs.linuxtone.org/ebooks/C&CPP/c/ch09.html
1、缩进和空白1)关键字if, while, for与其后的控制表达式的括号“(”之间插入一个空格分隔,但括号内的表达式应
紧贴括号。例如: while␣(1);
2)双目运算符的两侧插入一个空格分隔,单目运算符和操作数之间不加空格。
例如
i␣=␣i␣+␣1、
++i、
!(i␣<␣1)、
-x、
&a[1]等。
3)后缀运算符和操作数之间也不加空格。
例如取结构体成员
s.a、函数调用
foo(arg1)、取数组成员
a[i]。
4)“,”号和“;”号之后要加空格,这是英文的书写习惯。
例如
for␣(i␣=␣1;␣i␣<␣10;␣i++)、
foo(arg1,␣arg2)。
5)以上关于双目运算符和后缀运算符的规则不是严格要求,有时候为了突出优先级也可以写得更
紧凑一些,例如
for␣(i=1;␣i<10;␣i++)、
distance␣=␣sqrt(x*x␣+␣y*y)等。但是省略的空格一定不要误
导了读代码的人,例如
a||b␣&&␣c很容易让人理解成错误的优先级。
6)由于标准的Linux终端是24行80列的,接近或大于80个字符的较长语句要折行写,折行后用空
和上面的表达式或参数对齐。
例如:if␣(sqrt(x*x␣+␣y*y) > 5.0
&&␣x␣<␣0.0
&&␣y␣>␣0.0)
或者 foo(sqrt(x*x␣+␣y*y),
a[i-1]␣+␣b[i-1]␣+␣c[i-1])
7)较长的字符串可以断成多个字符串然后分行书写。
例如:printf("This is such a long sentence that
"
"it cannot be held within
a line\n");
2、注释
1)单行注释应采用
/*␣comment␣*/的形式,用空格把界定符和文字分开。
多行注释最常见的是这种形式:
/*
*␣Multi-line
*␣comment
*/
2)整个源文件的顶部注释。说明此模块的相关信息,例如文件名、作者和版本历史等,顶头写不缩进。格式和1)差不多。
3)函数注释。说明此函数的功能、参数、返回值、错误码等,写在函数定义上侧,和此函数定义之间不留空行,顶头写不缩进。
4)代码行右侧的简短注释。对当前代码行做特别说明,一般为单行注释,和代码之间至少用一个空格隔开,一个源文件中所有的右
侧注释最好能上下对齐。
5)复杂的结构体定义比函数更需要注释。
6)复杂的宏定义和变量定义也需要注释。
3、标识符
1)标识符的命名要清晰明了,可以使用完整的单词和大家易于理解的缩写。短的单词可以通过去元音形成缩写,较长的单词可以取
单词的头几个字母形成缩写,也可以采用大家基本认同的缩写。例如count写成cnt,block写成blk,length写成len,window写成
win,message写成msg,temporary可以写成temp,也可以进一步写成tmp。
2)内核风格规定变量、函数和类型采用全小写加下划线的方式命名,常量(宏定义和枚举常量)采用全大写加下划线的方式命名。
3)全局变量和全局函数的命名一定要详细,不惜多用几个单词多写几个下划线,例如函数名
radix_tree_insert,因为它们在整个项目
的许多源文件中都会用到,必须让使用者明确这个变量或函数是干什么用的。局部变量和只在一个源文件中调用的内部函数的命
名可以简略一些,但不能太短,不要使用单个字母做变量名,只有一个例外:用i、j、k做循环变量是可以的。
4)建议不要用汉语拼音作为标识符名称,可读性极差。
相关文章推荐
- 谈谈 Linux 内核驱动的编码风格
- 编码风格
- Yii 属性编码风格
- 来自 Google 的 R 语言编码风格指南
- Android journey 1@关于编码风格和命名规范
- 初次尝试Object-C,编码风格还真不习惯
- Python笔记——基本语法:标识符、数据类型、变量、运算符及表达式/编码风格
- 100%正确的编码风格指导
- Android项目开发中编码风格规范总结
- kr编码风格
- PHP团队 编码规范 & 代码样式风格规范
- 腾讯的编码风格
- CodeVar --拯救你的变量 alfred workflows 多风格的编码变量
- Python 编码风格指南
- java编码风格
- 一些达成共识的JavaScript编码风格约定
- 关于编码风格
- FreeRTOS系列学习笔记一---FreeRTOS编码标准及风格指南
- 【荐】JavaScript编码风格
- Linux2.6内核 -- 编码风格(3)