C语言之变参数宏代替printf

#define LOG( format, ... ) printf( format, __VA_ARGS__ )

1 VA_ARGS

  • VA_ARGS是系统预定义宏,被自动替换为参数列表
  • 经常需要进行输出格式化,重定义操作时,可以使用以上技巧;

2 示例代码

1
2
3
4
5
6
7
8
9
#include <stdio.h>

#define LOG( format, ... ) printf( format, __VA_ARGS__ )

int main(int argc, char *argv[])
{
LOG("%s\n", "hello world!");
return 0;
}

3 printf另外宏替换

1
#define LOG printf