当标识符已被定义过(用#define
定义),则对程序段1进行编译,否则编译程序段2.
#ifdef 标识符
程序段1
#else
程序段2
#endif
看看例子
#define DEBUG
int main(void)
{
int a=14, b=15, c;
c=a/b;
#ifdef DEBUG
cout<<"a="<<oct<<a<<" b="<<b<<endl;
#endif
cout<<"c="<<dec<<c<<endl;
return 0;
}
运行结果如下
a=16 b=17
c=0
注意:oct
表示按八进制格式输出
看看DEBUG
有没有定义过?没看懂?简单举个例子
#include<iostream>
using namespace std;
// #define DEBUG
int main(void)
{
int a=14, b=15, c;
c=a+b;
#ifdef DEBUG
cout<<"a="<<a<<" b="<<b<<endl;
#endif
cout<<"c="<<c<<endl;
return 0;
}
cout<<"a="<<a<<" b="<<b<<endl;
这一句代码不会执行,是因为#define DEBUG
被注释掉了,最后执行的只有c=29
这一行,否则,三个值都会显示出来。