【规则】指针变量、表示资源描述符的变量、BOOL变量声明必须赋予初值
【规则】指向资源句柄或者描述符的变量,在资源释放后立即赋予新值
【规则】类成员变量必须在构造函数中赋予初值
【规则】不对指针变量进行sizeof操作
【建议】尽量使用const
【建议】全局变量的访问如果涉及多个线程没需要考虑多线程竞争条件问题
【建议】同一个函数内,局部变量所占用的空间不要过大
【规则】数组作为函数参数时,必须同时将其长度作为函数的参数
【规则】不对内容进行修改的指针型参数,定义为const
【建议】谨慎使用不可重入函数
【建议】字符串或指针作为函数参数时,请检查参数是否为NULL
【规则】循环必须有退出条件
【规则】如果构造函数中分配了需要手动释放的资源,则必须有析构函数
【规则】构造函数内不能做任何可能失败的操作
【规则】严禁在构造函数中创建线程
【规则】严禁出现delete this操作
【建议】尽量避免定义public成员
【规则】确保有足够的存储空间
【规则】对字符串进行存储操作,确保字符串有'\0'结束符
【规则】外部数据作为数组索引时必须确保其在数组大小范围内
【规则】外部数据做为复制内存操作函数的长度时,需要校验其合法性
【规则】调用格式化函数时,禁止format参数由外部可控
【规则】调用格式化函数时,format中参数的类型与个数必须与实际参数类型一致
【规则】整数之间运算时必须严格检查,确保不会出现溢出、反转、除0
【规则】整型表达式比较或赋值为一种更大类型,必须先用这种更大类型对它进行求值
【规则】禁止对有符号整数进行位操作运算
【规则】禁止整数与指针间互相转化
【规则】循环次数如果受外部数据控制,需要校验其合法性
【规则】禁止对指针进行逻辑或位运算
【规则】内存申请前,必须对申请内存大小进行合法性校验
【规则】内存分配后必须判断是否成功
【规则】禁止引用未初始化的内存
【规则】内存释放之后立即赋予新值