admin 管理员组

文章数量: 1086019


2024年3月14日发(作者:openstack和vmware是两个东西吧)

Linux C语言的编程规范

(Linux)有独特的(编程)风格,在内核源代码目录

Documentation/CodingStyle,详细描述代码风格。

建议大家可以去看一下,老外写技术文档还是很有意思的,上

来就狂喷,“你不这样写就会完蛋,异教徒才不这样写……”,没有国

内那么刻板,多阅读英语文档对技术增长很有帮助。

1. 命名规范

在一般编程中,习惯以如下方式命名宏、变量和函数:

#define (PI) 3.1415926 /*用大写字母代表宏 */int minValue,

maxValue; /*变量:第一个单词全小写,其后单词的第一个字母大写

*/void SendData (void); /* 函数:所有单词第一个字母都大写 */

这种通过单词之间通过首字母大写来区分的方式非常流行。通过第1

个单词的首字母是否大写可以区分名称属于变量还是属于函数,而看

到整串的大写字母可以断定为宏。

许多领域的程序开发都遵照此习惯。

但是Linux不以这种习惯命名,对于上面的一段程序,在Linux中

它会被命名为:

#define PI 3.1415926int min_value, max_value;void send_data

(void); 在上述命名方式中,宏还是一样用大写,但变量和函数名,

不按照Windows所采用的用首字母大写来区分单词,而是采用下划

第 1 页 共 6 页

线。而且Linux下命名,全局变量命名最好用长的准确的描述,局部

变量最好简短,甚至直接用tmp,i之类的。

其实两种命名方式都行,写Liunx下的程序时,与Linux社区代

码风格一致更好,但你用第一种我觉得也无伤大雅。

2.缩进

缩进统一使用"TAB",而不是空格括号。

另外提一句:在Linux下,"TAB"代表8个字符,而不是4个,

Linux代码风格认为8个字符更能体现层次结构。文档里喷"TAB"为4

字符的是异教徒,对于8字符在多层次时,代码太偏右的问题,文档

又喷层次超过三层,你的代码就会完蛋,哈哈哈。

为了减少层次,在switch/case语句方面, Linux 建议switch和

case对齐,例如:

switch (suffix) {case 'G':case 'g': mem 3. Linux中

代码括号“{”和“}”的使用原则

1)对于结构体、if/f(or)/while/switch语句, “{”不另起一行,例如:

struct var_data { int len; char data[0];};if (a

== b) { a = c; d = a;}for (i = 0; i 2)如果if、for

循环后只有1行,不要加“{”和“}”,例如:

for (i = 0; i 应该改为:

for (i = 0; i if和else混用的情况下, else语句不另起一行,例如:

if (x == y){ ...} else if (x > y) { ...} else

{ ...} 4)对于函数, “{”另起一行,例如:

第 2 页 共 6 页


本文标签: 命名 代码 文档 大写 单词