编写一个宏来读取不同数据类型的变量

时间:2019-12-14 17:49:35

标签: c macros printf scanf

我有以下任务:“编写宏VARIN(a,fmt)以便进行宏调用

VARIN(x,lf) is equivalent to
printf("\n x = "); scanf("%lf",&x);
and VARIN(i,d) is equivalent to
printf("\n i = "); scanf("%d",&i);

其中x和i分别是一些类型为double和int的程序变量。”

我很茫然。尝试了几个小时,仍然无处可去。如何编写从不同数据类型读取变量的函数或宏?

1 个答案:

答案 0 :(得分:0)

假设您的示例需要C。 您想要这样的东西:

#define VARIN( a, fmt ) printf( "\n " #a " = " ); scanf( "%" #fmt, &a );

#a 字符串化变量为文本。

int boo() {
    double x;
    VARIN( x, ld );
    char str[10];
    VARIN( str, s );
}

应该像上面一样可用。