我有以下任务:“编写宏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的程序变量。”

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

最佳答案

假设您希望通过示例获得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 );
}


应该像上面一样可用。

关于c - 编写一个宏来读取不同数据类型的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59337651/

10-11 18:14