他们都是在预处理的时候发挥作用。
1,#define宏定义
2,#udef 标识符 : 取消以前定义的宏定义 ; 如果以前没定义,则忽略它。
3,条件编译命令:
#ifdef标识符
程序段1
#else
程序段2
#denif
它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。
有时我们也会采纳以下条件编译命令:
#ifndef标识符
程序段1
#else
程序段2
#denif 还有一种形式,就是#if后面的是一个表达式,而不是一个简单的标识符:
#if 表达式
程序段1
#else
程序段2
#endif
注:程序段可以是语句组,也可以是命令行。
另,有时会遇到#define DEBUG ,定义了宏DEBUG,却没有扩展符号;这是一个技巧用法,通常涌来调试程序,和#ifdef和起来使用。当程序还处在调试阶段时,可以
#define DEBUG
#ifdef DEBUG
一些输出语句,可以涌来做调试
#endif
如果,调试通过,要生成releae时,可以#udef DEBUG ,或者删掉#define DEDBUG ; 然后还可以在#ifdef后面加上#else(也可以不加,视程序而定)。