-2

具体的な答えを見つけることができないかなり基本的な質問があります

デフォルトでは、C の int、short、long のサイズはいくつですか? int a と言うと、デフォルトで署名されていますか?

また、同じの符号なし値のサイズは何ですか。つまり、unsigned int、unsigned short などですか?

コンパイル/実行に mac os x と xcode を使用しています。sizeof (int) を実行してみましたが、「int」と「unsigned int」の両方で 4 バイトが返されます。signed と unsigned のサイズの違いは?

4

4 に答える 4

1

常にプラットフォームと実装に依存します。一部の型は、ある実装では同じサイズであり、別の実装ではそうでない場合があります。慎重に開発するためのステップ 1 へようこそ。

于 2013-09-04T01:32:48.417 に答える
0

符号付きおよび符号なし int は同じサイズです。上位ビットは符号ビットです。

int はデフォルトで署名されています。

short は通常 2 バイト、int は通常 4 バイトです。long は通常 4 または 8 です。これらはすべてプラットフォームに依存するため、sizeof() を使用して検出する必要があります。

于 2013-09-04T01:34:12.057 に答える
0

Intel のシステムを含め、今日のほとんどのシステムは、符号付き整数を表すために2 の補数を使用しています。したがって、通常は を取得しsizeof(unsigned int) == sizeof(signed int)ます。

特定のタイプのビット数は、仕様によって大まかにしか定義されていないため、ほとんどがコンパイラ/プラットフォームに依存します。int が 16 ビットの場合もあれば、32 ビットの場合もあります。詳細については、コンパイラのドキュメント (例: gcc ) を読み、移植可能なコードを作成するときはそのことを念頭に置いてください。

于 2013-09-04T01:34:36.377 に答える