铜锁的 C 代码风格
· 阅读需 5 分钟
铜锁采用类似于OpenSSL的代码风格(Coding Style)。因铜锁项目中存在多种编程语言,而C语言作为其中占比最大的一种,所以本文对铜锁的C语言代码风格进行定义。
一、缩进
缩进采用4个空格,禁止使用Tab。预处理 指令,按照嵌套层次,使用1个空格作为缩进,例如:
#if
# define
# if
# define
# else
# define
# endif
#else
# define
#endif
#define
二、换行
禁止一行中写多个语句,例如下例是禁止的:
if (condition) do_this();
do_something_everytime();
原则上每行的长度为80个字符,即超过80个字符的行需要进行换行;除非换行后严重影响可读性,可不受80字符的行长度限制。对于用户可见的字符串,例如输出到命令行对用户起提示作用的字符串,则禁止换行,以防止无法使用grep等工具在代码中查找。
三、大括号配对和空格
对于非函数类语句,铜锁采用如下的大括号对齐风格:
if (x is true) {
we do y
} else if (conidtion) {
we do z
} else {
do something...
}
do {
...
} while (1);
switch (suffix) {
case 'G':
case 'g':
mem <<= 30;
break;
case 'M':
case 'm':
mem <<= 20;
break;
case 'K':
case 'k':
mem <<= 10;
/* fall through */
default:
break;
}
需要注意的是,对于switch语句,其中的case需要和switch对齐,而非进一步进行缩进。 对于函数,则大括号的起始位置有变化:
int function(int x)
{
body of function
}
此外,关于空格也有相关约定。在绝大部分的关键字后面,都需要加1个空格,例如:
if, switch, case, for, do, while, return