标签:style class ext color 使用 strong
不要让main函数返回void
//在C++中绝对没有出现过 void main(){ }这样的函数定义,在C语言中也是。//第一版的C语言中只有 int 一种数据类型,为了兼容
需要,不明确标明返回值的,默认为 int
//在main函数中,return 语句的作用在于离开main函数(析构掉所有具有动态生存时间的对象),并将其返回值作为参数来调用 exit 函数。如果执行到main结束处时,没有遇到return语句,编译器会隐式加上return 0,该规则仅仅对 main 函数适用。
============================================
区分0的4种面孔
//整型0、空指针NULL、字符串结束标志 ‘\0‘、逻辑FALSE/false//FALSE是C的宏定义,是 int 类型;false是C++的关键字,是 bool 类型,只占一个字节。
============================================
//if(0 = value) 常数 0 不能作为左值来使用
============================================
对表达式计算顺序不要想当然
//操作符优先级,不要吝啬使用括号//函数参数(要保证凡是在参数表中出现过一次以上的变量,在传递时不改变其值,即使如此也并非万无一失)和操作数的评估求值顺序由编译器决定,小心陷阱,让表达式不要依赖计算顺序。
============================================
小心宏#define使用中的陷阱
//使用完备的括号、不允许参数发生变化、用大括号{}将宏所定义的多条表达式括起来
============================================
不要忘记指针变量的初始化
============================================
//在使用逗号分隔表达式时,C++会确保每个表达式都被执行,整个表达式的值为最右边表达式的结果。
============================================
//C语言中的 字符串库 没有采用相应的内存安全保护措施,使用时要特别小心。如:strcpy、strcat等函数无缓冲区大小检查。
============================================
//pFun_taking_pfv p[10]; /* 等同于void (*p[10]) (void (*)( )) */
============================================
防止重复包含头文件
//编译器在每次编译时都需要打开文件才能判定是否有重复定义,因此在编译大型项目时,ifndef 会使编译时间相对较长。
============================================
//#pragma pack(n) /* n 为字节对齐数,其取值为1、2、4、8、16,默认是 8 */
============================================
//int *pi = temp; //转换成功
============================================
//非成员函数形式的重载:
//<Type> ClassName :: operator ++( ClassName & ); //前缀//<Type> ClassName :: operator ++( ClassName &, int ); //后缀
============================================
掌握变量定义的位置与时机// 对象的构造和析构不可避免地会带来一定的开销,故应把握好变量定义的时机:尽量晚定义,尽量缩小作用域。
============================================
小心typedef使用中的陷阱//typedef static int a; //指定了一个以上的存储类型
============================================
尽量不要使用可变参数============================================
慎用goto编写高质量代码——“零星”总结,布布扣,bubuko.com
标签:style class ext color 使用 strong
原文地址:http://blog.csdn.net/u012627502/article/details/28496199