C#系列之预处理器命令

编译器是将源代码转换为机器代码的工具,而预处理器则在编译前处理信息,如#define用于定义符号,#undef取消定义,#if/#elif/#else/#endif控制编译流程。在Unity中,这些指令常用于平台或版本的适配。#warning产生警告,#error则导致编译错误。
摘要由CSDN通过智能技术生成

目录

1.什么是编译器?

2.什么是预处理器命令?


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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nicole Potter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值