2017-01-20 5 views
0

私は自分のプログラムの1つを新しいゲームコンソールに移植しています。問題は、私のC++アプリケーションをコンパイルするために使用されるSDKが__int16をサポートしていないが、int16_tを持っているということです。 __int16の代わりにint16_tを使用することは「安全」でしょうか?
また、int16_tまたは__int16を使用せずに、integerの16ビットにunsigned short intをちょうど使用しても構いません。移植プログラム、int16_tと__int16が「同じ」の場合、興味があります

+2

あなたはどのような開発環境から来ていますか?どんな開発環境に移行していますか?私は答えがそれに依存するだろうと思う。 – templatetypedef

+0

int16_tが標準であることを指摘しておきましょう。それは ''または ''で定義されています。 1999年にC標準に追加され、後でC++標準(C++ 11?)で採用されました。また、 '__int16'という名前は予約されています。その名前で自分のコードに何も定義しないでください。 –

答えて

1

これらは同じです。

人々は、標準のものが出てくる前に独自の固定幅タイプを定義していました。 typedefを使用するだけで、それが彼らの目的です。

0

int16_tおよび__int16は、両方とも16ビットの整数に符号化する必要があります。もう1つを代用すると問題ありません。 unsigned short intは完全に異なっています。署名されているのではなく、署名されておらず、16ビットであることが保証されていません。それは別のサイズになる可能性があります。

関連する問題