1.头文件中经常需要其他头文件
2.避免多重包含
基于以上两点,引入预处理器。
预处理器变量的名字在程序中必须是唯一的。任何与预处理器变量相匹配的名字的使用都关联到该处理器变量。
为了避免名字冲突,预处理器变量经常用全大写字母表示。
预处理器变量有两种状态:已定义或未定义。
定义预处理器变量和检测其状态所用的预处理器指示不同。
#define指示接受一个名字并定义该名字为预处理器变量。
#ifndef指示检测指定的预处理器变量是否未定义。如果预处理器变量未定义,那么跟在其后的所有指示都被处理,直到出现#endif.
可以使用这些设施来预防多次包含同一头文件:
#ifndef SALESITEM_T //条件指示
#define SALESITEM_T
//Definition of Sales_item class and related functions goes here
#endif
当没有两个头文件定义和使用同名的预处理器变量时,这个策略相当有效。我们可以用定义在头文件里的实体(如类)来命名预处理器变量来避免预处理器变量重名的问题。