变长参数的宏

在宏定义中,希望能够制定变长参数,方法是GCC中使用##

#define printf(args…)   fprintf(stdout, ##args)

那么,printf(“%d %s”,123,”hello”)

会被展开成

fprintf(stdout,”%d %s”,123,”hello”)

而在VC环境下,可以用__VA_ARGS__这个编译器内置的宏

#define printf(…) fprintf(stdout, __VA_ARGS__)



本文地址: http://www.bagualu.net/wordpress/archives/1200 转载请注明




发表评论

电子邮件地址不会被公开。 必填项已用*标注