CSharp(C#)语言_C#中的“预处理指令”

什么是预处理指令

  源代码指定了程序的定义,预处理指令(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 指定有关程序上下文的信息

猜你喜欢

转载自blog.csdn.net/qq_43562262/article/details/107998087