C 语言代码规范
一、命名规范
1. 变量命名
小驼峰式:firstName
,hexToBinary
下划线式:first_name
,hex_to_binary
不要使用非常见单词的缩写,类似 FTL 这种可以缩写,但是 hexToBinary 不要写成 htb
2. 常量命名
全部大写,单词之间用下划线分隔,OUT_OF_BOUND_EXCEPTION_CODE
,也不要使用缩写
3. 函数及结构体命名
下划线式?小驼峰式?
小驼峰式:firstName
,hexToBinary
下划线式:first_name
,hex_to_binary
二、注释
1. 文件开头注释
类似这样的注释
1 | /* |
2. 变量声明注释
和变量声明同一行,用 //
注释,例如:
1 | int cacheCapacity = 1024; // cache 容量 |
注释尽量用 tab 全对齐
3. 函数功能注释
函数体前对函数进行注释,注明函数功能,参数类型及含义,返回值类型及含义,例如:
1 | /** |
4. 代码块注释
在函数内对某一个代码块进行注释,使用 /*
注释,例如:
1 | void func() { |
当循环或条件判断嵌套过多时,在代码块的结束部分加上注释标记,例如:
1 | if (...) { |
三、排版
1. 空格和换行
if, while 等和后面的括号之间要有一个空格,当有多个参数时,逗号后面也要有一个空格。
所有的二元运算符,除了”.”,应该使用空格将之与操作数分开,一元操作符和操作数之间不要加空格。
注释和注释标记之间需要一个空格,空行中不要有空格。
1 | struct ListNode { |
另外,函数体内逻辑相关的功能的某些代码中间可以加上空行进行区分,例如:
1 | int func() { |
一行代码太长时需要换行,尽量在运算符前换行,并且缩进是八个空格(两个 tab),比如:
1 | if ((condition1 && condition2) |
2. 花括号形式
花括号在函数名在同一行
1 | void func() { |
不在同一行
1 | void func() |
四、其他
- 尽量不使用全局变量,尽量将变量作用域限定到最小,例如局部变量或者静态全局变量,重要全局变量尽量使用 getter 及 setter 调用。局部变量最好要初始化。
- 将指针释放后要将指针置空,否则可能会导致野指针,例如
1 | int *p = (int*)malloc(sizeof(int) * 5); |
3.