赞
踩
一直以来用宏定义#define也就是定义一些简单的常量,至多也就是定义一个函数,很少关注宏定义的用法。直到看到这样的代码:
- #define PLAYSOUNDEFFECT(...) \
- [[GameManager sharedGameManager] playSoundEffect:@#__VA_ARGS__]
不得不说宏定义很强大!宏定义的使用使得程序的编写更加的简便!
作为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 宏
官方解释:
A 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 类对象的宏
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。