【问题标题】:warning in macro that print a value打印值的宏中的警告
【发布时间】:2013-08-08 13:43:37
【问题描述】:

我有以下宏

我想打印一个变量名,然后是值, 所以宏将有助于让变量名显示它的值

我的例子展示的结果

var = 1.234 打印在屏幕上。

#include <stdio.h>

#define str(s) #s
#define PRINTER(X) printf("% 12s = % f\n", str(X), X);

int main()
{
   float var = 1.234f;
   PRINTER(var);// <===== warning here
   return EXIT_SUCCESS;
}

我的问题,如果你尝试一下,如果你在 main 中收到警告,请告诉我,这是什么意思? 对我来说,我得到flag ` ' used with type `s'

edit:

标志说明

(空格)如果不写入符号,则在值之前插入一个空格。

【问题讨论】:

  • 尝试删除%12s之间的空格?

标签: c macros warnings gnu-make


【解决方案1】:

更改

#define PRINTER(X) printf("% 12s = % f\n", str(X), X); 

#define PRINTER(X) printf("%12s = %f\n", str(X), X);`

注意% 和说明符之间删除的空格。

【讨论】:

  • 除了字符串之外几乎任何类型都允许使用空格,我有一个调整打印位置的标志,这就是我尝试它的原因
猜你喜欢
  • 2017-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-21
相关资源
最近更新 更多