【问题标题】:How to print variables with #define like #define STR(M) = value of M [closed]如何使用#define 打印变量,例如#define STR(M) = M 的值 [关闭]
【发布时间】:2016-12-25 09:50:30
【问题描述】:
#include <stdio.h>

#define STR /*~~Complete this line~~*/
/* such that the output of the code is

M = 10
N = 5

*/

#define N 5
#define M 10

int main() {
printf(STR(M));
printf("\n");
printf(STR(N));
return 0;
}

我们必须将 M = 10 和 N = 5 打印到控制台。 我不知道我们该怎么做。请帮我。代码本身已经很好地解释了这个问题。

【问题讨论】:

  • #define STR(X) #X " = %d", X
  • @md5 - 为什么作为评论?

标签: c c-preprocessor


【解决方案1】:

#define STR(x) printf(#x "=%d",x)

我误读了这个问题..当您在 printf..use 中使用它时 #define STR(x) "%s = %d ",#x,x 或者 #define STR(x) #x "=%d",x

【讨论】:

  • 如果我们用 puts 而不是 printf 呢?
  • 啊试一次...你可以在编译器中检查它...
  • 工作方式不同。
  • 给我错误,比如 puts 的函数调用参数太多。
  • 它不起作用..但是我给定的解决方案有效......
【解决方案2】:

给你:

#define STR(x)  "%s=%d",#x,x

请阅读宏

【讨论】:

  • 如果我们使用 puts 而不是 printf 会怎样?
  • @AshwaniJha - 你会倒霉的
  • 你为什么首先使用宏?无论如何,为什么要开始改变问题的目标?
  • 只是我大学里的一个编码问题。我没有心情使用它。 :P
  • @AshwaniJha 我做到了,这就是我发布之前评论的原因。阅读评论。此答案不打印名称。
猜你喜欢
  • 2013-01-16
  • 1970-01-01
  • 2015-01-08
  • 2015-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多