use*_*040 4 c macros variadic-functions variadic-macros
我想写一个变量宏,它以某种方式知道传递的参数的名称.例如:
代码:
int x = 2;
float f = 4.6;
char c = 'A';
char* str = "Bla bla";
PRINT("%d %f %c %s", x, f, c, str); // calling the macro
Run Code Online (Sandbox Code Playgroud)
应产生输出
x=2 f=4.6 c=A str=Bla bla.
Run Code Online (Sandbox Code Playgroud)
希望有人知道答案.
关闭但不完全(仅适用于单个表达式)提问者需要的内容:
#define PRINT(fmt, var) printf(#var " = " fmt, (var))
Run Code Online (Sandbox Code Playgroud)
这是一个例子:
#include <stdio.h>
#include <stdlib.h>
#define PRINT(fmt, var) printf(#var " = " fmt, (var))
int
main(int argc, char *argv[])
{
int x = 2, y = 3;
float f = 4.6;
char c = 'A';
char *str = "Bla bla";
PRINT("%d\n", x);
PRINT("%f\n", f);
PRINT("%c\n", c);
PRINT("%s\n", str);
PRINT("%d\n", x+y);
exit(EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
301 次 |
| 最近记录: |