预处理指令

  • ​​什么是预处理指令​​
  • ​​基本规则​​
  • ​​预处理指令​​

什么是预处理指令

  源代码指定了程序的定义,预处理指令(preprocessor directive)指示编译器如何处理源代码。
  例如,在某些情况下,我们可能希望编译器忽略一部分代码,而在其他情况下,我们可能希望代码被编译。预处理指令给了我们这样的选项。
  在 CC++ 中有实际的预处理阶段,此时预处理程序遍历源代码并且为之后的编译阶段准备文本输出流,在C#中没有实际的预处理程序。“预处理” 指令由编译器来处理,而这个术语保留了下来

基本规则

  • 预处理指令必须和C#代码在不同的行
  • 与C#语句不同,预处理指令不需要以分号结尾
  • 包含预处理指令的每一行必须以 # 字符开始
  • 在 # 字符前可以有空格
  • 在 # 字符和指令之间可以有空格
  • 允许行尾注释
  • 在预处理指令所在的行不允许分隔符注释
//                结尾没有分号
#define PremiumVersion // 正确

// 前面的空格
#define BudgetVersion // 正确

// 中间有空格
# define MediumVersion // 正确

// 不允许分隔符注释
#define PremiumVersion /* all bells & whistles */

// 行尾注释可以
#define BudgetVersion // Stripped-down version

预处理指令

指 令

含义概要

#define identifler

定义编译符

#undef identifier

取消定义编译符

#if expression

如果表达式是 true,编译下面的片段

#elif expression

如果表达式是 true,编译下面的片段

#else

如果之前的 #if 或 #elif 表达式是 false,编译下面的片段

#endif

标记为一个 #if 结构的结束

#region name

标记一段代码的开始,没有编译效果

#endregion name

标记一段代码的结束,没有编译效果

#warning message

显示编译时的警告消息

#error message

显示编译时的错误消息

#line indicator

修改在编译器消息中显示的行数

#pragma text

指定有关程序上下文的信息