先说一下本文中会提到的内容:##,__VA_ARGS__, __FILE__, __LINE__ , __FUNCTION__等 宏变量: 先举一个例子,会用到上面这些宏: 此处的 #define 的作用是将 myprintf( )换成后面那一大串的内容,而括号内 ... 的内容原样抄写在 __VA ...
分类:
其他好文 时间:
2016-05-10 20:29:26
阅读次数:
357
#define CC_CALLBACK_0(__selector__,__target__, ...) std::bind(&__selector__,__target__, ##__VA_ARGS__) #define CC_CALLBACK_1(__selector__,__target__, ...
分类:
其他好文 时间:
2016-04-27 12:33:20
阅读次数:
156
ios UIWebView支持缩放 1.定义一个宏:该宏js代码可以使加载的网页支持缩放功能 注意标红属性的功能 #define QUOTE(...) #__VA_ARGS__const char *webViewHeightJSString = QUOTE( var viewportmeta = ...
分类:
移动开发 时间:
2016-04-06 11:23:53
阅读次数:
165
#define name [string] 宏定义. 在编译预处理时, 对程序中所有出现的宏名, 都将使用宏定义中的字符串来替换 ... 变参, 用于传递可变参数列表, 可使用__VA_ARGS__来获取可变参数列表 # 字符串化, 给相应的参数加上双引号 #@ 单字符化, 给相应的参数加上单引号, ...
分类:
其他好文 时间:
2016-03-28 01:57:31
阅读次数:
210
公司中不直接使用NSLog,而是利用宏定义自己的打印函数,将该打印函数写在项目的.pch文件中.调试的时候往往用到好多打印,但发布的时候确不需要.(一下是在公司中的一些处理) 一,固定写法: #define MYLog(...) NSLog(__VA_ARGS__) 二,注意: 1,MYLog括号中
分类:
其他好文 时间:
2016-03-18 10:44:05
阅读次数:
153
之前一直是到处写printf来打印调试信息,不需要是还得一个一个注释掉.之后上网查询发现有很多方法来进行DEBUG打印,参数可变而且方便一次性开关. #define DEBUG(fmt,...) printf (fmt,__VA_ARGS__) 这里的“…”指的是可变参数. int main() {...
分类:
其他好文 时间:
2016-02-27 15:05:00
阅读次数:
173
分享自己写的一个简化版LOG输出宏 extern int verbose; #define DBG(...) XLOG(4, "DBG", __VA_ARGS__) #define INFO(...) XLOG(3, "INF", __VA_ARGS__) #define WRN(...) XLOG
分类:
其他好文 时间:
2016-02-26 18:29:58
阅读次数:
152
为什么说do while(0) 妙?因为它的确就是妙,而且在linux内核中实现是相当的妙,我们来看看内核中的相关代码:
#define db_error(fmt, ...) do { fprintf(stderr, "(error): "); fprintf(stderr, fmt, ##__VA_ARGS__); } while...
分类:
编程语言 时间:
2016-02-24 09:38:41
阅读次数:
216
#define NSLog(FORMAT, ...) fprintf(stderr,"%s\n",[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);#import int main(int argc, const char...
分类:
编程语言 时间:
2016-01-11 19:53:13
阅读次数:
151
#define NSLog(FORMAT, ...) fprintf(stderr,"%s\n",[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);#import int main(int argc, const char...
分类:
编程语言 时间:
2016-01-11 19:45:54
阅读次数:
115