提高C++代码质量学习(一)

1.不要让main函数返回void

关于main函数,在最新的 C99 标准中,只有以下两种定义方式是正确的: 
int main( void ) 

int main( int argc, char *argv[] ) 

当然,在有些编译器下,void main() 也是可以通过编译的,但 C99 和 C++98 规定编译器要自动在生成的目标文件中加入”return 0;”, 表示程序正常退出.写程序好的习惯是自己在main函数的最后加上return语句,因为并不是所有的编译器都支持这一特性. 所以如果想让自己的程序写出来移植性好,最好加上return语句。


2.“0”与“空”

在程序中,很多时候都会用0与1来作为标志位,用null来判断是否为空。

整型0              int             4字节

空指针NULL           type*           4字节(32位系统)

逻辑FALSE            int             4字节

逻辑false            bool            1bit

常用的判断用法推荐为:

if (0 == nVal)      //int nVal

if (NULL == pObj)   //Obj* pObj

if (‘\0’ == c)    //char c

if (!bFlag)                 //bool bFlag

另外,在用0与1作为判别标志位时,更推荐使用枚举,或许你要判断的结果只有两种,但依然推荐使用枚举,没有为什么。


3.指针变量的初始化与销毁

如果使用了没有初始化的局部变量,会给出以下警告:

    warning C4700:使用了未初始化的局部变量

全局变量在声明的同时,编译器会悄悄完成对变量的初始化。

栈上未初始化的内存每个字节初值为-52,内存补码形式0xCC,两个字节组成一个汉字,就是“烫”。

堆上未初始化的内存每个字节初值为-51,内存补码形式0xCB,两个字节组成一个汉字,就是“屯”。

使用指针后一定要在确定不再用到时立即销毁!!!!!睿智的我当初因为这个事情被嫌弃死了!!!!!!

还有创建出来的对象也是!!!delete啊delete!!!


你可能感兴趣的:(C++,代码质量优化)