温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Objective-C之预处理程序

发布时间:2020-10-23 22:10:00 来源:网络 阅读:440 作者:Aonaufly 栏目:开发技术

预处理指令使用#内标记。

一 : #define语句

用来定义宏。例如定义:

#define TRUE 1

解释 : 定义了一个宏名称为TRUE,并使它的值为1.那么之后TRUE就可以用于程序中所有需要值为1的常量的地方。

测试实例:

在DefineDemo.h中定义宏 : #define TRUE 1 。注意一般将其定义在最上面,如下图(定义在了#import的上面)

Objective-C之预处理程序

调用的地方:可以在任何地方调用。

①:在DefineDemo.m中调用:

Objective-C之预处理程序

②:在主程序main.m中调用:

Objective-C之预处理程序

结果:

Objective-C之预处理程序

注意 : 宏是只读的


二 : 条件编译之 #ifdef , #endif , #else , #ifndef , #elif

#ifdef : 如果存在编译参数

#ifndef : 如果不存在编译参数

例如:修改了下DefineDeno.m中Print方法的实现,如下:

Objective-C之预处理程序

我没有定义编译参数AINY , 则会打印Ainy not。结果如下,确实如此:

Objective-C之预处理程序

那么问题来了,如何定义一个编译参数AINY呢 ??????

在Build Settings中:

Objective-C之预处理程序

再次运行结果,则是打印TRUE值1

显然 : #ifdef , #ifndef 和Build Settings中的如上图所示的配置是相关的

三 :  #if 是判断常量的

如:

Objective-C之预处理程序


四 : 编译参数之 #undef : 消除某个编译参数

如 : #undef AINY , 在这句执行后 , 所有#if AINY 及 #if defined(AINY) 都为FALSE

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI