![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言
C语言
丸子叮咚响
日拱一卒,功不唐捐。
展开
-
C __VA_ARGS__宏
C99中规定宏也可以使用可变参数(参考C variadic函数)。于是有了__VA_ARGS__宏。 举例#define LogAny(fmt, ...) printf(fmt, ##__VA_ARGS__) 说明 没有## ,语法也是正确的,但当可变参数个数为0时会报错。 加上##的作用在于,当可变参数个数为0时,##能把前面多余的","去掉。 ...原创 2021-06-25 20:00:29 · 182 阅读 · 0 评论 -
C variadic函数
一 定义 variadic函数,即可变参数函数,是例如printf这样需要可变数量参数的函数。函数声明使用…作为最后一个参数,且至少之前有一个命名参数(自C89,K&R C 不支持)。 二 访问 在函数体中访问可变参数需要stdarg.h中的工具,具体如下: va_start:允许访问可变参数函数参数(函数宏) va_arg:访问下一个可变参数函数参数(函数宏) va_copy(C99):制作可变参数函数参数(函数宏)的副本 va_end: 结束可变参数函数参数(函数宏)的遍历 va_li原创 2021-06-25 19:33:01 · 428 阅读 · 0 评论