1、预处理指令
预处理指令是以#
号开头的代码行,#
号必须是该行除了任何空白字符外的第一个字符。#
后是指令关键字,在关键字和 #
号之间允许存在任意个数的空白字符,整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。
预处理器指令 | 描述 |
#define | 它用于定义一系列成为符号的字符。 |
#undef | 它用于取消定义符号。 |
#if | 它用于测试符号是否为真。 |
#else | 它用于创建复合条件指令,与 #if 一起使用。 |
#elif | 它用于创建复合条件指令。 |
#endif | 指定一个条件指令的结束。 |
#line | 它可以让您修改编译器的行数以及(可选地) 输出错误和警告的文件名。 |
#error | 它允许从代码的指定位置生成一个错误。 |
#warning | 它允许从代码的指定位置生成一级警告。 |
#region | 它可以让您在使用 Visual Studio Code Editor 的大纲特性时, 指定一个可展开或折叠的代码块。 |
#endregion | 它标识着 #region 块的结束。 |
2、#define 预处理器和条件指令
#define
预处理器指令创建符号常量。
#define
允许您定义一个符号,这样,通过使用符号作为传递给 #if
指令的表达式,表达式将返回 true
。
语法:
#define symbol
可以使用 #if
指令来创建一个条件指令。条件指令用于测试符号是否为真。如果为真,编译器会执行 #if
和下一个指令之间的代码。也可以使用==
(等于)、!=
(不等于)、&&
(与)、||
(或)运算符。
例如,
#define DEBUG #define RELEASE using System; namespace cjavapy { class Program { static void Main(string[] args) { #if (DEBUG&&!RELEASE) Console.WriteLine("开发环境"); #else Console.WriteLine("生产环境"); #endif Console.ReadKey(); } } }
注意:一个以 #if 指令开始的条件指令,必须显示地以一个 #endif
指令终止。