C#预处理器指令之#define/#undefine/#if/#elif/#else/#endif

时间:2021-08-13 04:17:54

预处理器命令的功能非常强大,在编程过程中的使用也非常广泛,比如在版本发布中使用非常方便;

1,#define(告诉编译器存在给定名称的符号)    #undefine(删除符号)

2,#if    #elif    #else    #endif

#define本身没有什么作用,一般与其他预处理器指令配合使用(#if)

使用#define 告诉编译器存在给定的符号

在VS中添加名称符号

在Unity使用


 ----使用#define 告诉编译器存在给定的符号--------------------------------------

#define ANDROID

#define IOS

#define WP

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace CShapeB

{

    class Test

    {

#if ANDROID

    #if QD1

    #elif QD2

    #elif QD3

    #endif

#elif IOS

    #if QD1

    #elif QD2

    #elif QD3

    #endif

#elif WP

#elif ELSE

#else

#endif

    }

}  

-----在VS中添加名称符号--------------------------------------

1,Debug-->配置管理器。


2,,Debug--><新建...>。


3,填写名称ANDROID_DEBUG,并且完成设置,然后我们就可以在Debug中看到ANDROID_DEBUG了。



4,配置ANDROID_DEBUG,在条件编译符号号写入给定的名称符号,并保存。


5,使用,我们在Debug方式下的话我们的ANDROID并没有启用,但是我们切换到ANDROID_DEBUG下的话ANDROID符号下的代码就被启用了。




-----在Unity使用--------------------------------------

BuildSetting ->PlayerSettings ->Scripting Define Symbols


 -----Unity预定义宏--------------------------------------

平台定义

   
UNITY_EDITOR   编辑器调用。  
UNITY_STANDALONE_OSX   专门为Mac OS(包括Universal,PPC和Intelarchitectures)平台的定义。  
UNITY_DASHBOARD_WIDGET   Mac OS Dashboard widget (Mac OS仪表板小部件)。  
UNITY_STANDALONE_WIN   Windows。  
UNITY_STANDALONE_LINUX   Linux的独立的应用程序。  
UNITY_STANDALONE   独立的平台(Mac,Windows或Linux)。  
UNITY_WEBPLAYER   网页播放器(包括Windows和Mac Web播放器可执行文件)。  
UNITY_WII   Wii游戏机平台。  
UNITY_IPHONE   iPhone平台。  
UNITY_ANDROID   Android平台。  
UNITY_PS3   PlayStation 3。  
UNITY_XBOX360   Xbox 360。  
UNITY_NACL   谷歌原生客户端(使用这个必须另外使用UNITY_WEBPLAYER)。  
UNITY_FLASH   Adobe Flash。  

也可以判断Unity版本,目前支持的版本