一个程序的实现经历了以下一个过程:
C/C++条件编译 C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 C/C++条件编译
一般情况下,源程序中的所有行都参加编译。但是,有时候希望程序中的一部分内容只在满足一定条件时才进行编译,也就是对这一部分的内容指定编译的条件,成为“条件编译”。
指令 用途
# 空指令,无任何效果
#include 包含一个源代码文件
#define 定义宏
#undef 取消已定义的宏
#if 如果给定条件为真,则编译下面代码
#ifdef 如果宏已经定义,则编译下面代码
#ifndef 如果宏没有定义,则编译下面代码
#elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码,其实就是else if的简写
#endif 结束一个#if……#else条件编译块
#error 停止编译并显示错误信息
条件编译有以下几种形式:
(1)#ifdef 标识符
程序段1
#else
程序段2
#endif
作用:若指定的标识符已经在#define命令中定义过,则在程序编译阶段编译程序段1,否则编译程序段2
(2)#ifndef 标识符
程序段1
#else
程序段2
#endif
作用:与(1)相反
(3)#if 表达式
程序段1
#else
程序段2
#endif
作用:当指定的表达式为真(非零)时就编译程序段1,否则编译程序段2