1

のシーケンスについて

typedef  int64_t     I64;
I64 i=5;
printf("%"PRIi64",i);

cppcheck は以下の警告を出します:

警告: フォーマット文字列 (1 番目) の %lld には 'long long' が必要ですが、引数の型は 'signed int' です。

マクロ PRIi64 は lld によって解決されます。これは正しいですが、64 ビット整数型は long long int として受け入れられません。

これを解決する方法があることを願っています。私たちのプロジェクトではこのような警告がたくさん出ており、実際のバグはもう見られないからです。

4

1 に答える 1