c語言資料型別

2021-06-18 23:19:31 字數 796 閱讀 4153

下面是我關於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語言 資料型別

基本型別 整形 int 字元型 char 實型 浮點型 單精度 float 雙精度 double 構造型別 陣列型別,結構型別 struct 聯合型別 uion 列舉型別 enum 指標型別 空型別 無值型別 void。常量 在程式執行過程中,其值不能被改變的量稱為常量。變數 變數代表記憶體中具有特...

C語言 資料型別

整形資料在記憶體中的存放形式 數值是以補碼表示的 1.正數的補碼和原始碼相同,2.負數的補碼 將該數的絕對值的二進位制形式按位取反再加1.例如 求 10 的補碼 10的原始碼 0000 0000 0000 1010 取反 1111 1111 1111 0101 再加1,得 10補碼 1111 111...

C語言資料型別

字面值這個術語表示的是字面值常量,指定了自身的值並不允許改變。const 十進位制的數字可以是 int long或unsigned long。2.1整形 一般佔4個位元組 32位 最高位代表符號,0表示正數,1表示負數,取值範圍是 2147483648 2147483647,在記憶體中的儲存順序是地...