1. C 言語の整数型には、char、short、int、long などがあります。C 言語の各データ型の長さの規則は次のとおりです。
(a) short 型とlong 型の長さは異なります。
(b). int 型は通常、特定のマシンの物理ワード長と同じです
(c) は、通常、16 ビット、int は、異なるハードウェアに応じて自由に決定できます。ただし、short および int は少なくとも 16 ビットである必要があり、long 型は少なくとも 32 ビットである必要があり、short は int および long 型よりも短い必要があります。
2. sizeof() 演算子は、データ型に含まれるバイト数を返します。AnsiC では、sizeof(char) が 1 を返す必要があると規定しています。sizeof が配列に適用されると、配列内のすべてのバイト数が返されます。メンバーによって占有されているバイト数 (配列内のメンバーの数ではないことに注意してください) sizeof() が構造体とパブリックボディに適用されると、データメンバーの合計バイト数だけでなく、コンパイラーのバイト数も返されます。目的 実装バイトが埋め込まれるバイト。
私はプログラムを書くときにこれらの規則を漠然と理解していましたが、char 型は 8 ビットでなければならないと常々思っていましたが、最近組み込み DSP プロジェクトに携わったところ、コンパイラのマニュアルには char 型が 16 ビットであることが明確に記載されていました。仕方なく「The C Programming Language」を調べたところ、ANSI C には char 型の長さに関する厳密な要件がないことがわかりました。以前は、プログラムを作成するときにデータ型の移植性についてあまり注意を払っていませんでしたが、このプロジェクトで使用されていたすべてのコードは、データ型の長さの問題について再検査する必要がありました。
C++ データ型の長さの問題:
1. バイトとワード長
バイト、8 ビットは 1 バイトであり、これは固定概念です。ワード長とは、コンピュータが一度に処理できるバイナリ データの長さを指します。これは固定された概念ではありません。たとえば、8 ビット コンピュータのワード長は 8 (1 バイト)、32 ビット コンピュータのワード長は 32、つまり 4 バイトです。同様に、64 ビット コンピュータのワード長は 64 です。 、または 8 バイト。
2. C++ のデータ型
1. 文字データ char、この型の長さは常に 1 バイト、つまり 8 ビットです。
2. 整数、短いものと長いもの。通常、int は 1 ワード長、short は半ワード長、long は 1 または 2 ワード長です (32 ビット マシンでは 1 ワード長)。
3. Float、double、long double は、それぞれ単精度浮動小数点数、倍精度浮動小数点数、拡張精度浮動小数点数を表します。通常、float は 1 ワード、double は 2 ワード、long double は 3 または 4 ワードです。
Java の各データ型の長さ:
boolean はトライアルコンパイル環境によって異なります
byte 1 バイト
short 2 バイト
char 2 バイト
int 4 バイト
long 8 バイト
float 4 バイト
double 8 バイト
Java と C/C++ のデータ型の長さの比較に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。