Skip to content

Latest commit

 

History

History
24 lines (17 loc) · 1.76 KB

coding_style_CN.md

File metadata and controls

24 lines (17 loc) · 1.76 KB

代码规范

这份规范参考了 Linux 内核代码规范,仍在完善中。

编码风格

  1. 头文件需要用 #ifndef FILENAME_H 语句保护起来。
  2. 所有文件应当用 tab 而非空格缩进,tab 显示为 8 个字符宽。
  3. #define 语句定义宏时,#define 与名字之间用空格分开,名字与值(如果有)之间用 tab 分开,位置相近的值尽量对齐。
  4. 函数内的局部变量尽量在第一次使用时定义,例外见第 5 条;同时定义多个局部变量时,每个变量占一行,变量名对齐。
  5. 函数内有几个常用局部变量名:i, j, k 作为枚举变量,在 for 循环的开头定义;r 用于形如 if ((r = func()) < 0) 的语句中存储返回结果;tmp 用于存储临时变量。
  6. 轻易不使用 typedef,具体参照 Linux 内核代码规范;除 {i|u}{8|16|32|64} 外的 typedef 类名都应当以 _t 结尾,据此分辨变量名 typedef 重定义的类名。

命名规范

  1. 需要指定大小的整型变量使用 {i|u}{8|16|32|64} 作为类型名。
  2. 全局的名称(类型名,函数名,变量名)需要具有描述性,并且不易与其他模块混淆(如 CMD 就是一个差的名字);如有必要,添加当前模块相关的前缀。
  3. 局部的名称可以比较简略,但需要有意义。
  4. 常量命名使用大写字母 + 下划线分隔,其他内容命名均使用小写字母 + 下划线分隔。所有结构体名出现时都会伴随 struct 关键字,可以据此分辨变量名和结构体名。
  5. 定义一系列常量(例如进程的状态)时可以积极使用 enum

操作系统逻辑相关

  1. 所有错误码应当由一个 enum 定义在 errno.h 中, 错误码对应的消息定义在 errno.c 中。