C 预处理指令

C语言中的条件编译指令过多的话,会严重影响代码的阅读──影响整体的美观(到处都是#号看起来很不爽,而且这种结构没有参与整体的缩进,不容易找到正确的闭合位置),分散读者的注意力(同一个功能,面向不同的平台或针对不同的情况的代码都堆在一起,靠成阅读者精力浪费)。所以,我们的原则是,不到万不得已不用C语言中的条件编译指令(很多时候可以用注释替代);在不得不使用时,要在代码文件的开头或其它的文档上说明这个条件编译指令的位置和它的用途。

一般最常用的几种模式有:

#ifdef xxx
...
#else
...
#endif
#if (xxx)
...
#else
...
#endif
#ifndef xxx
#define xx
...
#endif
这种组合最常写在头文件的开头和结尾,把头文件的内容全部包起来,防止头文件的重复包含(被重复include时,实际不再include进主文件)
#if 0
...
#endif
这种组合常用于进行大段的注释,这种方法会比/**/更加凑效。因为/**/在嵌套的情况下会出问题:)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License