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