编译器
概念:编译器是一种翻译程序,用于将源语言程序翻译为目标语言程序。
源语言程序指的是某种程序设计语言写成的,比如:C#、C++、C、Java等语言写的程序。
目标语言程序指的是二进制数表示的伪机器代码写的程序。
预处理器指令
概念:预处理器指令是让编译器在实际编译开始之前对信息进行预处理。
语法:预处理器指令以**#**开始。
使用:用于在跨平台或者不同版本的应用程序中,识别不同平台或版本,让编译器选择执行不同的代码逻辑。
常见的预处理器指令:
#region 中间折叠代码块 #endregion
#define 定义一个符号
#undef 取消定义一个符号
#if #elif #else #endif 与if使用规则一致,一般配合**#define使用,用于编译器进行编译代码的流程控制**。
即当存在#define定义的符号时,执行代码。如果想判断多个#define定义的符号,可以配合使用||和&&。
#warning 一般配合#if #endif使用,发出警告。
#error 一般配合#if #endif使用,直接报错,编译器不执行。
实例:
#define Unity5
#define Unity2024
#define IOS
#define Android
#undef Unity2024
#undef Unity5
namespace 预处理
{
internal class Program
{
static void Main(string[] args)
{
#if Unity5
Console.WriteLine("版本为Unity5");
#elif Unity2024
Console.WriteLine("版本为Unity2024");
#error 不准执行
#elif Unity5 && Android
Console.WriteLine("版本为Unity2024");
#elif Unity5 || Android
Console.WriteLine("版本为Unity5或者Android");
#warning 这个版本可能有问题
#else
Console.WriteLine("其他版本");
#endif
}
}
}