資料模型決定了c語言中基本資料型別與資料寬度的對應關係。我們常用的32位模型稱為ilp32,而64位模型有三種:lp64、llp64和ilp64。在64位模型中,指標一定是64位的,但是int和long的寬度則在不同的資料型別中有不同的定義。如下表:
datatype
lp32
ilp32
llp64
lp64
ilp64
char88
888short
1616
1616
16int
1632
3232
64long
3232
3264
64long long
6464
6464
64pointer
3232
6464
64從前的dos是應該是lp32;現在的windows 32和linux 32是ilp32;在即將流行的64bits世界,windows x64 版採用的是llp64模型,linux64採用的是lp64模型,用gcc編譯時可以指定-m32按照ilp32模型進行編譯。
指標大小跟機器字長相關。為了相容,在寫c**時,用int宣告32bit整數,用long long宣告64bit整數。
按照posix的規定,乙個整型的正確格式化串為:
sign
char
short
intlong
long long
signed
%hhd
%hd%d
%ld%lld
unsigned
%hhu
%hu%u
%lu%llu
long和int的區別
short與long兩個限定符的引入可以為我們提供滿足實際需要的不同長度的整形數。int通常代表特定機器中證書的自然長度。short型別通常為16位,long型別通常為32位,int型別可以為16位或32位。各編譯器可以根據硬體特性自主選擇合適的型別長度,但要遵循下列限制 short與int型別至少...
long和int的區別
突然間就想到了 long 和int google 各種查詢,各種書籍 c primer c 程式語言 檢視,終於明白了一些。下面的話選自 c程式語言 short 與long兩個限定符的引入可以為我們提供滿足實際需要的不同長度的整形數。int通常代表特定機器中證書的自然長度。short型別通常為16位...
int 和 long 的區別
int 4個位元組,32位 unsigned int 0 4294967295 int 2147483648 2147483647 int32 4個位元組,32位 unsigned int32 0 4294967295 int32 2147483648 2147483647 long 4個位元組,3...