1、枚举类型,typedef和默认的文件作用域常量数据都有内部链接,应该尽量避免在头文件中使用。为了避免冲突,可以声明在类的定义中。在一个.h文件作用域中只应该声明类,结构体,联合体,和自由预算符函数,在.h作用域中只应该定义类,结构体,联合体,内联(成员或者自由运算符)函数。
2、在每个头文件的预处理器包含指示符周围放置冗余的外部的包含卫捎,比如:
#ifndef INCLUDE_WA
#include "wa.h"
#endif
这样就避免了每次预处理的时候每次都要打开头文件进行处理
3、使用assert语句有助于对假设条件编写文档。
4、预处理宏对于人和机器来说都是难以理解的,由于不是C++的一部分, 所以宏不被作用域约束,并且,如果放置在一个头文件中,宏可能与系统中的任一文件的任一标识符冲突,因此,宏不应该出现在头文件中,除非是作为包含卫捎
5、每个组件的.c文件都应该包含它自己的.h文件作为第一行独立的代码,因为编译器必须先看到一个成员的声明才能编译它的定义。作为第一行的,可以确保组件物理接口固有信息的关键段落没有从.h文件中丢失,或者如果有丢失,在你试图编译.c文件时,马上就会找到丢失的信息
6、除了内联函数,在C++中所有的类成员函数和静态数据成员都有外部链接。