宏中打印值的警告

时间:2013-08-08 13:43:37

标签: c macros warnings gnu-make

我有以下宏

我想打印一个变量名,然后输入值, 所以宏将帮助变量名称显示其值

我的示例节目

的结果

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;
}

我的问题,如果您尝试一下,请告诉我您是否在主要内部发出警告,这是什么意思? 对我来说,我得到flag ` ' used with type `s'

edit:

标记说明

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

1 个答案:

答案 0 :(得分:2)

Сhange

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

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

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