高质量C语言总结自 快跑教育(http://www.kpaoedu.com/)
- 编程习惯
- 文件结构
- 程序版式
- 空格的使用
- 长行拆分
- 注释
- 命名规则
- 规范的代码(缩进、空格使用得当)
- 高质量、容错性强的程序设计(括号使用、时空复杂度)
- 程序的易读性和可维护性
- 良好的编程习惯(变量见名知意)
- 头文件开头处的版权信息和版本声明
- 头文件双引号与尖括号的区别
1、用 #include程序版式格式来引用标准库的头文件 (编译器将从标准库目录开始搜索) 2、用 #include “filename.h” 格式来引用非标准库的头文件 (编译器将从用户的工作目录开始搜索)
- 可读性
空行的使用 1)在每个类声明之后、每个函数定义结束之 后都要加空行。 2)在一个函数体内,逻辑上密切相关的语句 之间不加空行,其它地方可加空行分隔。
代码行
1)一行代码只做一件事情,如只定义变量,或只
写一条语句。
示例①:
//声明变量我们遵从,视野可及范围可 不初始化变量
//视野不可及范围内 初始化变量防止产生未知错误
//适当数量的变量声明在一行 赞同
int width, height, depth; // 宽度高度深度
//不赞同 一行行声明变量
int width; // 宽度
int height; // 高度
int depth; // 深度
2)在使用C语言进行应用层面开发时if、for、while、do等语句自占一行,
执行语句不得紧跟其后。不论执行语句有多少都要加{}。
示例②
if (width < height) dosomething();
if (width < height)
{
dosomething();
}
//进行Linux内核开发时 会用到的开发代码风格
if (width < heigh){
dosomething();
}
3) 尽可能在定义变量的同时初始化该变量(就近原则)
如果变量的引用处和其定义处相隔比较
远,变量的初始化很容易被忘记。如果引
用了未被初始化的变量,可能会导致程序
错误。本规范可以减少隐患
- 对齐
1) C的应用层面,程序的分界符‘{’和‘}’应独占一行并且
位于同一列,同时与引用它们的语句左对齐。
示例①:
void Function(int x)
{
⋯ // program code
}
2) { }之内的代码块在‘{’右边数 空格处左对齐。
3) 如果出现嵌套的{},则使用缩进对齐
示例②:
if (NULL != (fp = popen("route -n", "r")))
{
while(NULL != fgets(buffer, sizeof(buffer), fp))
{
printf("%s", buffer);
}
}
空格的使用
1)逗号后空格 void Func1(int x, int y, int z); // 良好的风格 void Func1 (int x,int y,int z); // 不良的风格 2)操作符间空格 if (year >= 2000) // 良好的风格 if(year>=2000) // 不良的风格 3)恰当使用括号,防止歧义 if ((a>=b) && (c<=d)) // 良好的风格 if(a>=b&&c<=d) // 不良的风格 4)分号后空格 for (i=0; i < 10; i++) // 良好的风格 for(i=0;i<10;i++) // 不良的风格 5)前后置++, 结构体指针->, 结构体.访问成员等不要多余空格 for (i = 0; I < 10; i ++) // 过多的空格 a.Function(); // 不要写成 a . Function(); b->Function(); // 不要写成 b -> Function(); 6)三目操作符 x = a < b ? a : b; // 良好的风格 x=a 长行拆分1)代码行最大长度宜控制在70至80个字符以内。 代码行不要过长,否则眼睛看不过来,也不便于打印。 2)长表达式要在低优先级操作符处拆分成新行, 操作符放在新行之首(以便突出操作符)。 拆分出的新行要进行适当的缩进,使排版整齐,语句可读。注释
- 版本、版权声明;
- 函数接口说明;
- 重要的代码行或段落提示。
1)边写代码边注释,修改代码同时修改相应的注释, 以保证注释与代码的一致性。不再有用的注释要删除。 2)注释应当准确、易懂,防止注释有二义性。 3)尽量避免在注释中使用缩写,特别是不常用缩写。 4)注释的位置应与被描述的代码相邻,可以放在代 码的上方或右方,不可放在下方。命名规则
- 标识符应直观且可以拼读
标识符最好采用英文单词或其组合,便于记忆和阅读。 切忌使用汉语拼音来命名!!!
- 标识符的最小长度 && 最大信息量原则
标识符的长度应当符合“min-length && max-information”原则 变量的名字应当使用“名词”或者“形容词+名词”。 float value; float oldValue; float newValue;
- 命名风格
命名规则尽量与所采用的操作系统或开发工具的风格保持一致。
- 少用大小写
程序中不要出现仅靠大小写区分的相似的标识符。 int x, X; // 变量x 与 X 容易混淆 void foo(int x); // 函数foo 与FOO容易混淆 void FOO(float x);
- 局部,全局变量名称尽量不同
程序中不要出现标识符完全相同的局部变量和全局变量, 尽管两者的作用域不同而不会发生语法错误,但会使人误解。



