返回首页 - Notes - 2011

C语言编码规范


命名约定

变量名:使用下划线命名法,多个单词之间以下划线相连接。如 namemy_name

函数名:采用驼峰命名法,除第一个单词外,其余单词的首字母均大写。如 getMyName


运算符

  1. 双目运算符两侧加空格。如 z = x + y
  2. 指针声明时,星号一律靠近指针变量名书写。如 int *pchar **argv
  3. 每个分隔符(包括冒号、逗号、分号)后面要空一格。如 int a, b, c

大括号的位置

不论是函数定义还是流程控制语句,左大括号一律紧贴上一行最右侧书写,不再另起一行


函数定义

第一行写返回值,第二行书写函数名和形参列表,第三行起写函数主体,函数结尾右大括号的后面加上注释以标记函数结束

int                           // <1>
main(int argc, char** argv){  // <2>
    printf("Ruchee\n");       // <3>

    return 0;
}  // main                    // <4>

注释的位置

  1. 函数定义之前
  2. 变量声明之后
  3. if 语句之外
  4. for 语句之内

语句延行

C 支持在行末使用反斜线将长行分作多行书写,但要注意的是,反斜杠后的部分必须紧接着在下一行的开头开始书写,前面不能有任何空格和制表符,除非后续的第一个字符恰恰就是空格或制表符。示例:

    print\
f("Ruchee\
\n")\
;

对于 printf 系列函数,如果有变量值的传递,则一律另起一行,如:

printf("My name is %s, and age is %d\n",
       name, age);

流程控制

对于 if-else 的相等性测试语句,一律将变量放置在 == 号右边,如:

  1. if(NULL == p)if(NULL != p)
  2. if(0 == i)if(0 != i)

其他规范

每个源文件都要在首部注明文件名称、文件建立时间、作者信息等,如果文件有修改,还需加上文件的最后修改日期

头文件包含语句放在程序最前面

宏定义紧跟头文件包含语句

所有变量声明统一写到函数定义的最前面,for 循环的临时位置变量例外

所有函数调用声明统一写到 main 函数之前,或另设头文件进行包含

凡一个语句集群结束应空行


date : 2011-08-02、2012-01-04、2012-08-16、2012-09-05、2012-09-07