1

私は次のマクロを持っています

変数名の後に値を出力したいので、マクロは変数名を表示してからその値を表示するのに役立ちます

私の例のショーの結果

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:

フラグの説明

(スペース) 記号を書かない場合は、値の前に空白スペースが挿入されます。

4

1 に答える 1

2

変更する

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

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

%と指定子の間のスペースが削除されていることに注意してください。

于 2013-08-08T13:47:52.697 に答える