一、c語言資料型別
c語言標準是這樣規定的:int最少16位(2位元組),long不能比int短,short不能比int長,具體位長由編譯器開發商根據各種情況自己決定。
在32位x86處理器上,short、int、long普遍的長度是2位元組、4位元組、4位元組。當然如果編譯器開發商願意,long完全可以是8位元組。在 win64 下,long 也是 32 bit 的,4 位元組。int則是64bit,8位元組!
資料型別signed
表示有符號,unsigned
表示無符號。
占用空間
範圍char
1位元組-128 ~ +127
short
2位元組-32768 ~ + 32767
unsigned short
2字元0 ~ 65536
int4位元組
-2147483648 ~ +2147483647
unsigned int
4位元組0 ~ 4294967295
long
2位機器:4位元組
64位機器:8位元組
-2147483648 ~ +2147483647
-9223372036854775808 ~ +9223372036854775807
long long
8位元組-9223372036854775808 ~ +9223372036854775807
float
4位元組double
8位元組指標
32位機器:4位元組
64位機器:8位元組
二、c中int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t區別
int8_t、int16_t、int32_t、int64_t、uint8_t 型別
定義是否有符號位位元組
最小值最大值
int8_t
signed char
signed81
-128
127uint8_t
unsigned char
unsigned81
0255
int16_t
short
signed162
-32,768
32,767
uint16_t
unsigned short
unsigned162
065,535
int32_t
intsigned324
-2,147,483,648
2,147,483,647
uint32_t
unsigned int
unsigned324
04,294,967,295
int64_t
long long
signed648
-9,223,372,036,854,775,808
9,223,372,036,854,775,807
uint64_t
unsigned long long
unsigned648
018,446,744,073,709,551,615
size_t與ssize_t
size_t主要用於計數,如sizeof函式返回值型別即為size_t。在不同位的機器中所佔的位數也不同,size_t是無符號數,ssize_t是有符號數。在32位機器中定義為:typedef unsigned int size_t; (4個位元組)
在64位機器中定義為:typedef unsigned long size_t;(8個位元組)
C語言 資料型別
基本型別 整形 int 字元型 char 實型 浮點型 單精度 float 雙精度 double 構造型別 陣列型別,結構型別 struct 聯合型別 uion 列舉型別 enum 指標型別 空型別 無值型別 void。常量 在程式執行過程中,其值不能被改變的量稱為常量。變數 變數代表記憶體中具有特...
c語言資料型別
下面是我關於c語言中各種資料型別長度的總結 參考the c programming language 1.c語言中的整數型別有char,short,int,long等幾種,下面是c語言對每種資料型別長度的規定 a short和long型別的長度不相同 b int型別通常同具體機器的物理字長相同 c ...
C語言 資料型別
整形資料在記憶體中的存放形式 數值是以補碼表示的 1.正數的補碼和原始碼相同,2.負數的補碼 將該數的絕對值的二進位制形式按位取反再加1.例如 求 10 的補碼 10的原始碼 0000 0000 0000 1010 取反 1111 1111 1111 0101 再加1,得 10補碼 1111 111...