预处理指令
Contents
预处理器指令
- 预处理器指令 指导编译器 在实际编译开始之前对信息进行预处理
- 预处理器指令 都是以#开始
- 预处理器指令不是语句,所以他们不以分号;结束
- 目前我们经常用到的 折叠代码块 就是预处理器指令
常见的预处理器指令
- #define 定义一个符号,类似一个没有值的变量
- #undef 取消define定义的符号 让其失效
- 两者都是写在脚本文件最前面 一般配合if指令或者特性使用
//定义一个符号
#define Unity5
#define Unity2017
#define Unity2019
//取消定义一个符号
#undef Unity5- #if , #esif , #else , #endif 和if语句规则一样,一般配合#define定义的符号使用
- 告诉编译器进行编译代码的流程控制
- 在Unity中通常会用来进行一些平台或者版本的判断,可以根据不同的平台或版本使用不同的代码逻辑
//有if就要有endif
#if Unity5 //如果发现有Unity5这个符号 那么其中包含的代码 就会被编译器编译
Console.WriteLine("版本为Unity5");
#elif Unity2017 || Unity2019 //可以通过逻辑或 和逻辑与 进行多种符号的组合判断
Console.WriteLine("版本为Unity2017或者Unity2019");
#else
Console.WriteLine("其他版本");
#endif- #warning , #error 告诉编译器是报警告还是报错误
- 一般还是配合if使用
//有if就要有endif
#if Unity5 //如果发现有Unity5这个符号 那么其中包含的代码 就会被编译器编译
Console.WriteLine("版本为Unity5");
#elif Unity2017 || Unity2019 //可以通过逻辑或 和逻辑与 进行多种符号的组合判断
#warning 这个版本太新辣
Console.WriteLine("版本为Unity2017或者Unity2019");
#else
#error 这个版本不合法
Console.WriteLine("其他版本");
#endif