8

型がコンパイラでサポートされているかどうかをテストするにはどうすればよいですか? uint64_t のように言います。特定のタイプをテストする方法を学習するために使用できるリファレンスはありますか?

これを検索エンジンで探すのは意外と大変です。「データ型のCテスト」などいろいろ試しました。

4

2 に答える 2

13

次のことを確認できます。

UINT64_MAXマクロはインクルード後に定義されstdint.hます。

c99 以降がサポートされているかどうかわからない場合は、チェックで囲んで__STDC_VERSION__be にすることもできます>= 199901L__STDC_VERSION__C89/C90 にはマクロが存在しないことにも注意してください。

標準から(強調鉱山):

(C99, 7.18p4) 「実装が提供する、ここに記述された型ごとに、224) その typedef 名を宣言し、関連するマクロを定義しなければならない。逆に、実装が提供しない、ここに記述された型ごとに、その typedef 名を宣言してはならない」また、関連するマクロを定義してはなりません。

于 2012-12-29T01:50:46.377 に答える
2

使用してみてください。存在しない場合は、コンパイラ エラーが発生します。のような型uint64_tが入っていstdint.hます。

于 2012-12-29T01:50:51.417 に答える