C語言中各種資料型別長度的總結

2021-04-21 08:38:58 字數 827 閱讀 2602

下面是我關於c語言中各種資料型別長度的總結:(參考the c programming language)

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語言中各種資料型別長度

c語言的基本資料型別有以下幾個 int 整型 char 字元型 float 單精度浮點型 double 雙精度浮點型 另外,在基本資料型別基礎上附加一些限定詞,得到擴充的資料型別。short,long可以應用到整型,unsigned可以應用到整型和字元型 short int 或short 短整型 l...

c語言中各種資料型別的長度

在32位平台和64位平台上,同一種資料型別可能有不同的資料長度 型別32位平台 64位平台 char11 short22 int4 4long48 long long88 float44 double88 size t48 ssize t48 看到沒,從上面的結果可以看到不同,所以不要假定上表內顏色...

c語言中各種資料型別的長度

在32位平台和64位平台上,同一種資料型別可能有不同的資料長度 型別32位平台 64位平台 char11 short22 int4 4long48 long long88 float44 double88 size t48 ssize t48 看到沒,從上面的結果可以看到不同,所以不要假定上表內顏色...