プログラムで偽の警告を取り除こうとしています。Windows 64 では (Linux ではそのような警告はありません)、このステートメント:
printf("%llu",UINT64_MAX);
次の警告が生成されます。
warning: unknown conversion type character 'l' in format [-Wformat]|
出力は正しいように見え、警告は表示されません。私が見つけることができる最も関連性の高い gcc 関連の投稿は、2008 年からのこのバグ レポートhttp://gcc.gnu.org/bugzilla/show_bug.cgi?id=37768です。
それに従って正しく理解している場合、この警告は、内部で gcc が C99 に準拠していない MSVC printf を呼び出し、printf の unsigned long long 形式を理解できないという事実に起因します。同じページから提案された解決策は、gnu_printf と呼ばれるものを使用することです。私はそれをグーグルで検索しようとしましたが、含めるヘッダーが見つかりませんでした。
問題は、移植可能にするためにこれをどのように処理する必要があるかということです。正しくずさんな方法で警告を取り除きたいだけです。