juliusun.com
第 48/50 节 冥河C语言教程
预处理if指令能够实现选择性编译。C语言判断语句也有个if,本节讲的是预处理指令if,注意区别。
预处理if指令用法如下:
#if 常量表达式 程序段1 #else 程序段2 #endif
如果程序段2为空,else指令可以省略。但是if和endif作为开始和结束指令是绝对不能省略的。省略else指令时格式如下:
#if 常量表达式 程序段1 #endif
if指令,如果常量表达式成立,则编译程序段1,否则执行程序段2(如果存在)。
endif指令可以用来结束ifdef、ifndef、if指令。
常量表达式可以是宏定义的常量,也可以是其它常量表达式。常量表达式为一个单一数字,则0为假,非0为真(严格来说表达式值也是数字)。
举例说明,假设程序员甲写了一些头文件和源文件,分享给其它程序员。为了方便,程序员甲给头文件通过宏定义了版本号。当程序员甲又书写完一个新版本的源文件,此版本的源文件,需要新版头文件支持,那么程序员甲就可以通过if指令来提示其它程序员了。
假设程序员甲写的头文件名为my.h。my.h代码如下:
源文件代码如下:
假设某程序使用程序员甲源文件同时没有更新my.h头文件,则会输出类似如下信息:
效果图仅供参考。