在写笔记之前,首先声明编码规范很重要很重要,请大家一开始就能养成一个良好的习惯,以下是我的学习笔记总结:
编码规范的目的:提高源程序的质量,可维护性。
一、命名:文件名和目录名只能使用小写,数字和下划线,文件名遵照“模块名_功能名”的格式组织 如tcp_var.h
二、代码质量保证,优先原则
1 正确性,程序要实现设计要求的功能
2稳定性
3安全性
4规范
5全局效率
6局部效率
7个人表达方式
二、排版
1 换行
a 一行只写一条语句
b 一行代码的长度不超过120个字符
c 如果换行,在逗号处,在操作符后,长表达式要右低优先级操作符处换行,操作符放在右行尾,换行后,新起位置应该和上衣行对应级别处对齐
2 禁止使用“TAB”键来缩进对齐,必须使用空格代替
3 空行 空行用来分割不同的代码段以增加代码可读性
a 函数之间
b 局部变量定义和第一条可执行语句之间
c 相对独立的程序块之间
变量命名前缀表
变量类型 | 前缀 |
VOID | no prefix |
LONG | l |
ULONG | ul |
SHORT | s |
USHORT | us |
CHAR | c |
UCHAR | uc |
BOOL | b |
Structures | st |
unions | un |
enumerarions | en |
pointers | p |
pointer to function | pf |
strings | sz |
array | a(放在其他前缀开头) |
Global variales | g_ |
如CHAR cUserInput *pcUser *g_pcUser *apc Another[100]
宏使用场合
1 表示一些明确的常量或者状态
2 预编译来实现对各种环境的兼容
3替代一些大量被重复使用的代码块
注意:
1 宏在命名时要以模块名带下划线开头,全部大写并以下划线分割
2 整个宏要用括号括起来
3 有宏封装的数据结构禁止不通过宏而直接操作
4 避免重复定义宏
变量初始化的时候建议使用“就近原则”,即在开始使用的地方进行初始化
函数:
1 函数命名一般大写模块名_开头,以大小写交错的形式,表达出函数的实际意义,一般为动宾词组
2 对函数参数说明必须加上IN INOUT OUT表示传输方向的显示说明进行合法性检查
3 对有可能影响程序结果的进行返回值检查
4 函数功能单一,可以流程分离,控制函数规模和复杂度
5 为函数代码增加可读性和可维护性,建议函数不易超过200行
程序效率:
1 循环体内工作量最小化
2 在多重循环中,应将最小的循环放在最内层
3 尽量减少循环嵌套层次
4 避免循环体内含判断语句,应将循环语句置于判断语句的代码块中
代码审核九句箴言
1 看了if,就想else
2 看见malloc 就找free
3 函数调用要小心,需要看返回值
4 看到for 就找边界值
5 看见数组把神提,问题往往在下标
6 不要小看字符串,长度是个大问题
7 得到函数不要急,看看变量初始化,各种路径要小心
8 赋值函数最危险,变量没有初始化
九句真言不孤立,相互结合显神威!