4
int16_t s;
uint32_t ui = s;

int16_t値を値に変換した結果はuint32_tコンパイラに依存しますか? そうでない場合、ルールは何ですか?

4

1 に答える 1

7

結果は明確に定義されています。非負の値は同じままで、負の値は2^32を法として減少します。しかし、のような正確なint16_tサイズのタイプuint32_tが必要な状況は非常にまれです。intとここ以外のものは実際には必要ありませんunsigned long。これらのタイプには、少なくともとと同じ数のビットがint16_tありuint32_t、ととは異なりint16_t、準拠する実装に存在する必要がありuint32_tます。本当にセクシーな新しいサイズのタイプが必要な場合は、少なくともとで携帯性を確保してください。int_least16_tuint_least32_t

于 2012-09-27T12:44:21.563 に答える