1,方法最好是单独弄到一个类中,定义为类方法.都知道iOS的debug与release,所以我一开始就定义了一个这样的宏:#ifdef DEBUG#define ZHHLog(...) NSLog(__VA_ARGS__)#else#define ZHHLog(...)#endif#define M...
分类:
移动开发 时间:
2015-04-23 22:56:39
阅读次数:
336
在GNU C中,宏可以接受可变数目的参数,就象函数一样可以把__VA_ARGS__看成是将...赋值给该宏//注意这里不能在函数中调用abc()#include #include #define ABC(...) printf(__VA_ARGS__)/*void abc(...){ //pr...
分类:
编程语言 时间:
2015-04-18 21:50:45
阅读次数:
144
1.一般项目中我的NSLog会在Prefix.pch文件添加如下代码,已保证在非调试状态下NSLog不工作12345#ifdef DEBUG#define NSLog(...) NSLog(__VA_ARGS__)#else#define NSLog(...)#endif2.在项目中如果没做任何处理...
分类:
移动开发 时间:
2015-03-20 12:31:11
阅读次数:
188
预处理#和##是两个预处理运算符(注意不是C语言表达式的运算符),#后接形参(中间可以空格),用于创建字符串字面值;##用于连接两个形参。函数式宏定义也可以带可变参数,同样是用…表示可变参数,宏定义中的可变参数的部分用_VA_ARGS_表示。如:#define showlist(…) printf(...
分类:
系统相关 时间:
2015-03-12 18:54:08
阅读次数:
196
#include #define LOG_TAG ""#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)struct timeval xTime;int xRet = gettimeofday(...
分类:
移动开发 时间:
2015-01-27 18:05:02
阅读次数:
1600
#define CC_CALLBACK_0(__selector__,__target__, ...) std::bind(&__selector__,__target__, ##__VA_ARGS__)#define CC_CALLBACK_1(__selector__,__target__, ....
分类:
其他好文 时间:
2015-01-25 09:48:46
阅读次数:
225
#include #include #include #include #include #define LOG_TAG "System.out"//日志乱码时请将项目文件编码设置为UTF-8/**debug级别日志:ANDROID_LOG_DEBUG:级别,LOG_TAG:标签,__VA_ARGS...
分类:
移动开发 时间:
2015-01-24 22:36:39
阅读次数:
196
作者:hxxiaopei链接:如何使用# ## ... _ _VA_ARGS_ _1.#假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字...
分类:
其他好文 时间:
2015-01-20 23:45:54
阅读次数:
266
#ifdef DEBUG#ifndef DLog# define DLog(fmt, ...) {NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);}#endif#ifndef ELog# ...
分类:
其他好文 时间:
2015-01-08 15:06:37
阅读次数:
135
一,固定写法: ????????#define ?MYLog(...) ?NSLog(__VA_ARGS__) 二,注意: ????????1,MYLog括号中的...是固定写法,表示可以接受任意多个参数. ? ? ? ? 2,NSLog括号中的__VA_ARGS__ ?也是固...
分类:
其他好文 时间:
2014-12-21 14:03:30
阅读次数:
190