23.4 #define和#undef指令
这两条指令主要用于定义和撤销编译符号。那么究竟什么是编译符号呢?简单来说,编译符号具有如下几个特点:
❑它是一个标识符;
❑它不能为true和false;
❑它有且仅有两种状态:已定义和未定义;
❑它不能被赋值。
可以使用如下语法定义或取消定义编译符号:
define DEBUG
define SPECIAL
undef DEBUG
需要注意的是,不能在文件的第一个标记之后定义或取消定义编译符号,也不能在同一个源文件重复定义2次编译符号,如代码清单23-2所示。
代码清单23-2 预处理指令的正确和错误用法
define DEBUG//正确
define DEBUG//错误,重复定义
undef DEBUG//正确
using System;#define MILESTON//错误
define SPECIAL//错误
namespace ProgrammingCSharp4
{
undef SPECIAL//错误
class Preprocessor
{
//……
}
}