目录
1.什么是编译器?
编译器是一种翻译程序,它用于将源语言程序翻译为目标语言程序。
源语言程序:某种程序设计语言写成的,比如:C#,C,C++Java等语言写的程序。
目标语言程序:二进制数表示的伪机器代码写的程序。
2.什么是预处理器命令?
预处理器指令指导编译器,在实际编译开始之前的信息进行预处理。
预处理器指令都是以#开始。
预处理器指令不是语句,所以它们不以分号;结束。
目前,我们经常使用到的折叠代码块,就是预处理器指令。
可以让代码还没有编译之前就进行一些预处理的判断,在Unity中会用来进行一些平台或者版本的判断,决定不同的版本或者不同的平台使用不同的代码逻辑。
3.常见的预处理器指令
1 定义与取消定义一个符号
#define Unity4
//定义一个符号相当于一个没有值的变量
#undef
//取消define定义的符号,让其失效。
两者都是写在脚本文件最前面,一般配合if指令使用或配合特性。
2 编译器进行编译代码的流程控制
#if
#elif
#else
#endif
和if语句规则一样,一般配合#define定义的符号使用,用于告诉编译器进行编译代码的流程控制。
#if Unity2021
Console.WriteLine("版本为Unity2021");
#elif Unity2020
Console.WriteLine("版本为Unity2020");
//以上两种情况只会使用一个,与if语句规则相同
#endif
3 告诉编译器报警告还是错误类型
#warning
#error
一般配合if使用,例如:
#if Unity2021
Console.WriteLine("检测到Nicole Potter使用的是版本Unity2021");
#warning 无法检测
//(这里会提示但是可以运行)
//#error 请使用其他版本(这里会直接报错)
#else
Console.WriteLine("其他版本");
#endif