1

次のようなものを使用して、64 ビットの符号なし整数を出力しようとしています。

uint64_t x = 0xFFFFFFFFFFFFFFFF;
printf("Value: %016llx \n", x); 

そして、私はこれに応じて得ます:

0000000000000000lx

フォーマット文字列を %016lx に変更すると、間違った型を使用しているというコンパイル警告が表示され、下位 32 ビットのみが出力されます。

00000000FFFFFFFF

コンパイラ オプションに -std=c99 文字列がありますが、これは ll オプションを強制するはずですよね?

参考までに、これは Silicon Labs の Simplicity Studio IDE の最新バージョンに同梱されている arm-none-eabi-gcc コンパイラ (v4.7.3) です。

4

1 に答える 1