一.编译器
将源语言翻译为目标语言的程序.
源语言程序: 某种程序设计语言写成的程序,如C#,C++等
目标语言程序: 二进制表示的伪机器代码写的程序
二.预处理器指令
指导编译器在实际编译开始之前对信息进行预处理
以#开头,因为预处理器指令不是语句,所以不用分号结尾
目前常用的折叠代码块就是预处理器指令.
三.常见预处理器指令
1. #define, #undef
写在脚本文件最前面(开头)
//定义一个YYDS符号
#define YYDS
//取消定义
#undef YYDS
2.#if, #elif, #else, #endif
类似if语句规则,用于告诉编译器进行编译代码的流程控制
可以不写在脚本文件开头
逻辑|| 和 && 还是可以用
//例如,写在代码之中
#if YYDS
Console.WriteLine("YYDS");
#endif
//预处理时,如果发现存在YYDS这个符号,那其中包裹的代码,就会被编译器翻译
#define YYDS1
#if YYDS1
Console.WriteLine("YYDS1");
#endif
//运行时会打印"YYDS1"
//如果在#define YYDS1后面写 #undef YYDS1,则不会打印"YYDS1"
用预处理器来控制哪些代码需要执行
#define YYDS1
#define YYDS2
#if YYDS1
Console.WriteLine("YYDS1");
#elif YYDS2
//...
#else
//...
#endif
//运行时会打印"YYDS1"
//如果在#define YYDS1后面写 #undef YYDS1,则不会打印"YYDS1"
3.#warning, #error
告诉编译器,是报警告还是报错
警报和报错不是在执行时发生,而是在编译前,编译器就会提示的
#define NBCS
#define YYDS
#if YYDS
//...
#elif NBCS
#warning 请选择yyds
#endif
资料来源<唐老狮C#教程>