linux内核中的##__VA_ARGS__有什么作用?

答:   1.__VA_ARGS__是一个可变参数宏;

  2. 当可变参数的个数为0时,这里的##起到把前面多余的","去掉的作用,否则会编译出错;

  3. 示例

    3.1 #define myprintf(...) printf(stderr,__VA_ARGS)

    那么myprintf("%d",line)被展开为:

      printf(stderr,"%d",line)

    3.2 #define myprintf(...) printf(stderr,##__VA_ARGS)

    那么myprintf()就被展开为:

      printf(stderr)

原文地址:https://www.cnblogs.com/dakewei/p/10796012.html