c语言可变参数与宏定义 |
您所在的位置:网站首页 › 宏参数定义 › c语言可变参数与宏定义 |
标签:token ifd var 定义 va_arg details fine code print 宏定义 https://www.cnblogs.com/wzd5230/p/10959032.html https://www.cnblogs.com/xyang0917/p/4172493.html https://blog.csdn.net/wukery/article/details/53286348 //...表示可变参数列表 #define LOG(format, args...) fprintf(stdout, format, args) LOG("%s","123"); //正确 LOG("123"); //错误 展开后,相当与LOG(,"123") #define LOG(format, args...) fprintf(stdout, format, ##args) LOG("%s","123"); //正确 LOG("123"); //正确 ##加上后不会进行连接。 ##”连接符号的用法,“##”的作用是对token进行连接,上例中format,args都可以看作是token,如果token为空,“##”则不进行连接,所以允许省略可变参数 因为format这个token为空,又因为有##的加持,所以不连接。 //生产环境与测试环境切换操作 #ifdef DEBUG #define LOG(format, ...) fprintf(stdout, ">> "format"\n", ##__VA_ARGS__) #else #define LOG(format, ...) #endif可变参数编程 https://www.cnblogs.com/edver/p/8419807.html https://www.runoob.com/cprogramming/c-variable-arguments.html https://blog.csdn.net/ericbar/article/details/79558827 c语言可变参数与宏定义 标签:token ifd var 定义 va_arg details fine code print 原文地址:https://www.cnblogs.com/retry/p/11810818.html |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |