1. c語言中的整數類型有char, short, int, long等幾種, 以下是C語言對每種資料型別長度的規定:
(a). short和long類型的長度不相同
(b ). int型別通常同特定機器的物理字長相同
(c). short通常是16bits, int通常是16bits or 32bits每種編譯器可以根據硬體的不同自由確定, 但是short和int必須最少是16bits,而long類型必須最少是32bits, 且short必須比int和long類型短。
2. sizeof() 運算子傳回的是一種資料型別中所包含的位元組數(bytes), AnsiC規定sizeof(char)必須傳回1,當sizeof作用於陣列時, 傳回的是陣列中所有成員所佔的位元組數(注意並不是數組中成員的個數), 當sizeof()作用於結構體和公用體時,返回的不僅僅是數據成員總的字節數, 還包括編譯器為了實現位元組對其而填充的那些位元組。
以前寫程式也隱隱約約的懂得這些規則,但是一直以為char類型必須是8bits的,但是最近做了一個嵌入式DSP項目,編譯器手冊上明明寫著char類型就是16bits的,無奈翻出"The C Programming Language"一查才發現ANSI C對於char類型的長度並沒有作硬性規定。以前寫程式不太注意資料類型的可攜性, 這次專案中用到的以前的程式碼都要重新檢查資料類型長度的問題。
C++資料型別長度問題:
一、字節和字長
字節,八位就是一個字節,是固定概念。字長是指電腦一次能處理的二進位資料的長度,是一個非固定的概念。例如,8位元計算機的字長為8,即一個位元組,32位元計算機的位元長位元32,即4個位元組,同理,64位元計算機的位元長為64,即8位元組。
二、C++中的資料型別
1、字元型資料char,此型別總是一個位元組長,即8位。
2、整形int、短整型short和長整形long。通常int為一個字長,short為半個字長,long為一個或2個字長(在32位元機器中為一個字長)。
3、浮點型float、雙精度double、和長雙精度long double,分別表示單精度浮點數 雙精度浮點數和擴展精度的浮點數值。典型情況下,float 為一個字,double是兩個字,long double為三或四個字。
Java中各資料類型的長度:
boolean 這個試編譯環境而定
byte 1個字節
short 2個位元組
char 2個位元組
int 4個位元組
char 2個位元組
int 4個位元組
long 2個位元組
double 8個位元組
🎜更多java和c/c++ 資料類型長度的比較相關文章請關注PHP中文網! 🎜