68

GCCを使用してC99long long intでもprintfするにはどうすればよいですか?unsigned long long int

使用を提案する他の投稿を検索しました%lldが、次の警告が表示されます。

警告 #1: [-Wformat] 形式の未知の変換タイプ文字 'l' |
警告 #2: フォーマットの引数が多すぎます [-Wformat-extra-args]|

次の試行の場合:

#include <stdio.h>

int main()
{
   long long int x = 0;
   unsigned long long int y = 0;
   printf("%lld\n", x);
   printf("%llu\n", y);
}
4

4 に答える 4

90

Windows で mingw を使用している場合、gcc は win32 ランタイムを使用します。ここで、printf は%I64d64 ビット整数を必要とします。(および%I64u符号なし 64 ビット整数の場合)

他のほとんどのプラットフォームでは%lld、長い長い印刷に使用します。(そして%llu署名されていない場合)。これは C99 で標準化されています。

gcc には完全な C ランタイムは付属していません。実行しているプラ​​ットフォームによって異なります。そのため、gcc とは関係なく、特定のプラットフォームのドキュメントを参照する必要があるのが一般的です。

于 2012-11-27T18:36:34.803 に答える
-2

の設定を試すことができcode::block、コンパイラがあります...そして、Cモードで選択します。

ここに画像の説明を入力

于 2019-07-28T11:39:53.673 に答える