iOS 开发 高级:使用 宏定义macros (#,##,...,__VA_ARGS_)

    一直以来用宏定义#define也就是定义一些简单的常量,至多也就是定义一个函数,很少关注宏定义的用法。直到看到这样的代码:

#define PLAYSOUNDEFFECT(...) \
[[GameManager sharedGameManager] playSoundEffect:@#__VA_ARGS__]


这么强大的用法以前从来没有想过。看一下iOS Framework的一些头文件,发现几乎全部都是宏定义:


不得不说宏定义很强大!宏定义的使用使得程序的编写更加的简便!

作为iOS开发者,有必要深入研究一下宏定义的用法。


最官方的关于宏的使用说明网址是:http://gcc.gnu.org/onlinedocs/cpp/Macros.html#Macros

在Apple的官网上可以找到GNU C 4.2 Preprocessor User Guide,发现和GNU官网的说明一模一样。因为Xcode的编译器就是基于GNU C 4.2预处理器,因此在Objective-C的开发环境中使用宏和在C/C++中使用是一模一样的。


下面的文字是阅读官方使用说明后的总结及翻译。(代码直接从官方使用说明摘录)


1、Macros 宏

官方解释:

macro is a fragment of code which has been given a name. Whenever the name is used, it is replaced by the contents of the macro. There are two kinds of macros. They differ mostly in what they look like when they are used. Object-like macros resemble data objects when used, function-like macros resemble function calls.

有两种宏的类型,一种是类对象的宏,封装使用的数据对象,另一种是类函数的宏,封装函数的调用。在ObjC里面,那就是可以封装Method的使用,如文章一开始的代码


1.1 类对象的宏

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值