Returns NARG, the number of arguments contained in __VA_ARGS__ before expansion as far as NARG is >0 and <64 (cpp limits): [..] stands ...
在GNU C中,宏可以接受可变数目的参数,就象函数一样,例如: define pr debug fmt,arg... printk KERN DEBUG fmt, arg 用可变参数宏 variadic macros 传递可变参数表 你可能很熟悉在函数中使用可变参数表,如: void printf const char format, ... 直到最近,可变参数表还是只能应用在真正的函数中,不能使 ...
2012-03-09 23:23 4 45838 推荐指数:
Returns NARG, the number of arguments contained in __VA_ARGS__ before expansion as far as NARG is >0 and <64 (cpp limits): [..] stands ...
# 用来把参数转换成字符 #include <stdio.h> #d ...
【1】变长参数的宏定义以及__VA_ARGS__ 在C99标准中,我们就已经可以使用变长参数的宏定义。 变长参数的宏定义是个神马?就是在宏定义的参数列表中最后一个参数为省略号。 而现在C++ 11中,使用预定义宏__VA_ARGS__可以在宏定义的实现部分替换省略号所代表的字符串。 原书 ...
在C语言的标准库中,printf、scanf、sscanf、sprintf、sscanf这些标准库的输入输出函数,参数都是可变的。在调试程序时,我们可能希望定义一个参数可变的输出函数来记录日志,那么用可变参数的宏是一个不错的选择。 在C99中规定宏也可以像函数一样带可变的参数 ...
, __VA_ARGS__) #endif ...
本文说的__VA_ARGS__,就是一个可变参数宏,与printf中可变参数的宏定义一个道理,是新C99规范中增加的。 __VA_ARGS__详情内容 1.关于__VA_ARGS__ __VA_ARGS__它是一个可变参数的宏,就是将左边宏中“...” 的内容原样抄写在右边 ...
转自:http://www.cnblogs.com/zhujudah/admin/EditPosts.aspx?opt=1 1.#假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量 ...
在C语言的标准库中,printf、scanf、sscanf、sprintf、sscanf这些标准库的输入输出函数,参数都是可变的。在调试程序时,我们可能希望定义一个参数可变的输出函数来记录日志,那么用可变参数的宏是一个不错的选择。 在C99中规定宏也可以像函数一样带可变的参数 ...