void p(char *str, int x) { 8 printf("%s: %d\n", str, x); 9 } #define V(n,args) p(#n #args, (__builtin_##n args, 0))
时间: 2024-04-03 18:36:11 浏览: 89
408c语言数组-gets-puts-str系列-scanf字符型数组
这段代码定义了一个函数p(),它接受一个字符串和一个整数作为参数,将它们格式化输出。然后定义了一个宏V(),它将一个内置函数名和参数传递给p()函数进行处理。具体来说,#n #args将函数名和参数拼接成一个字符串,__builtin_##n args表示调用内置函数n,并将args作为参数传递给它,最后用逗号运算符将这个结果和0拼接在一起,作为p()函数的第二个参数传递进去。这样,宏V()就可以方便地调用各种内置函数并输出结果。
阅读全文