最近看源码遇到了宏__VA_ARGS__,且在这里描述一下:
- __VA_ARGS__的介绍
正如它的名字一样,一个可以代替可变参数的宏,举个例子:
#include <math.h>
#include <stdio.h>
#define MODULE_NAME "<Module>"
#define PR(X,...) printf("Message"#X":"__VA_ARGS__)
#define log_msg(log_fmt, ...) printf(MODULE_NAME ": " log_fmt "\n", ##__VA_ARGS__)
int main(void)
{
double x = 48;
double y;
char * pstr = "This is a string";
int SIZE = 10;
y = sqrt(x);
PR(1,"x = %g\n",x)