2016-06-23 8 views
-2

私はシミュレーションを行い、メモリコストを低く抑えたいので、クラスメンバーにuint8_t,uint16_tを使用してください。 cppは8ビットと16ビットを保証しますか?uint8_t、uint16_tはそれぞれ8ビットと16ビットであることが保証されていますか?

私が知っておくべきプロセスのアーキテクチャに基づいて違いがありますか?

+2

読んでください:http://en.cppreference.com/w/cpp/types/integer –

+0

そのタイプのポイントではありませんか? – phil13131

+0

uint8_tとuint16_tのサイズが違うと変なことになります。 http://en.cppreference.com/w/cpp/types/integer – Leon

答えて

5

いいえ、これらのデータ型は8または16ビットであるとは限りません。 が存在する場合、それらは8ビットまたは16ビットであることが保証されていますが、存在する必要はありません。

あなたの場合、uint_least8_tuint_least16_tを使用してください。それらは存在する必要があり、少なくともその数のビットを持つ最小のタイプになります。

+0

なぜあなたの答えは「*ノー*」ですか?彼らは期待されたサイズになることが保証されています(あなた自身で言うように)?問題は、存在/定義に関するものではありません。 – Amit

+0

@Amit実装がそれらを全く定義していない場合、8 respとして定義しません。 16ビット、それは? OPは、すべての実装で 'uint8_t'と' uint16_t'を使用するのが安全かどうかを知りたいと思っています。そうではありません。 – hvd

+0

@hvdは最小限のチップしか要しません – nnrales

12

はい、名前の正確なサイズであることが保証されています。または全く存在しない。

関連する問題