int 和 long的區別

2022-03-27 14:32:59 字數 842 閱讀 7389

資料模型決定了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...