duke

大名鼎鼎的林锐:高质量C/C++编程指南

林锐 2001

1.头文件能调用库功能、加强类型安全检查;
2.const常量有数据类型,而宏常量没有数据类型;
3.建立在整个类中都恒定的常量不能用const数据成员了,应该用类中的枚举常量来实现;
4.C语言中,凡不加类型说明的函数,一律自动按整型处理;
5.getchar的原型为:int getchar(void);
6.正常值用输出参数获得,而错误标志用return语句返回;
7.strcpy函数将strSrc拷贝至输出参数strDest中,同时函数的返回值又是strDest;
8.创建一个临时对象并返回它:编译器直接把临时对象创建并初始化在外部存储单元中;
9.assert是仅在Debug版本起作用的宏;
10.如果指针p是函数的参数,那么在函数的入口处用assert(p!=NULL)进行检查。如果是用malloc或new来申请内存,应该用if(p==NULL) 或if(p!=NULL)进行防错处理;
11.使用free或delete释放了内存后,应该将指针设置为NULL,防止产生“野指针”;
12.数组要么在静态存储区被创建(如全局数组),要么在栈上被创建;
13.如果函数的参数是一个指针,不要指望用该指针去申请动态内存;
14.如果p不是NULL指针,那么free对p连续操作两次就会导致程序运行错误;
15.inline是一种“用于实现的关键字”,而不是一种“用于声明的关键字”;
16.“缺省的拷贝构造函数”和“缺省的赋值函数”均采用“位拷贝”而非“值拷贝”的方式来实现,倘若类中含有指针变量,这两个函数注定将出错;
17.const只能修饰输入参数;
18.函数返回值采用“引用传递”的场合并不多,这种方式一般只出现在类的赋值函数中,目的是为了实现链式表达。

posted on 2006-01-25 17:13 暴雪狂沙 阅读(474) 评论(0)  编辑 收藏 引用 所属分类: c/c++