#
开头,并且预处理器指令之前只能出现空格不能出现任何代码。另外,预处理器指令不是语句,因此它们不需要以分号;
结尾。预处理器指令 | 描述 |
---|---|
#define | 用于定义一系列字符,可以将这些字符称为符号 |
#undef | 用于取消一个已定义符号 |
#if | 用于测试符号是否为真 |
#else | 用于创建复合条件指令,与 #if 一起使用 |
#elif | 用于创建复合条件指令 |
#endif | 指定一个条件指令的结束 |
#line | 用于修改编译器的行数以及(可选地)输出错误和警告的文件名 |
#error | 用于在代码的指定位置生成一个错误 |
#warning | 用于在代码的指定位置生成一级警告 |
#region | 用于在使用 Visual Studio Code Editor 的大纲特性时,指定一个可展开或折叠的代码块 |
#endregion | 用于标识 #region 块的结束 |
#define symbol
【示例】下面通过示例来演示 #define 预处理器指令的使用:#define PI using System; namespace task.lmcjl.com { class Demo { static void Main(string[] args) { #if (PI) Console.WriteLine("PI 已定义"); #else Console.WriteLine("PI 未定义"); #endif Console.ReadKey(); } } }运行结果如下:
PI 已定义
#if symbol_1
// 要执行的代码
#elif symbol_2
// 要执行的代码
#else
// 要执行的代码
#endif
==
(相等)和 !=
(不相等)来测试布尔值 true 或 false,例如 true 表示已定义该符号。另外,还可以使用 && (and)
、|| (or)
和 ! (not)
运算符来同时测试多个符号,以及使用括号对符号和运算符分组。注意:以 #if 指令开头的条件指令必须以 #endif 指令显式结束。
下面通过示例来演示条件指令的使用:#define DEBUG #define VC_V10 using System; namespace task.lmcjl.com { class Demo { static void Main(string[] args) { #if (DEBUG && !VC_V10) Console.WriteLine("DEBUG 已定义"); #elif (!DEBUG && VC_V10) Console.WriteLine("VC_V10 已定义"); #elif (DEBUG && VC_V10) Console.WriteLine("DEBUG and VC_V10 已定义"); #else Console.WriteLine("DEBUG and VC_V10 未定义"); #endif Console.ReadKey(); } } }运行结果如下:
DEBUG and VC_V10 已定义
本文链接:http://task.lmcjl.com/news/12849.html