C語言資料長度

2021-09-29 07:21:02 字數 2262 閱讀 7793

但是 mingw 的64 位gcc編譯器下,long 是32位的。查了資料,原來c標準沒有規定long必須是64位的。

c標準只規定了 int 的長度不低於 short,long 的長度不低於 int。實際上,c保證short至少有16位長,long至少有32位長,long long 至少64位長。

#include

#define sz(t) printf("sizeof("#t"):\t%zd\n", sizeof(t));

intmain

(int argc,

char

* ar**)

$ which gcc

/mingw64/bin/gcc

$ gcc --version

gcc.exe (rev3, built by msys2 project) 9.1.0

this is free software; see the source

for copying conditions. there is no

warranty; not even for merchantability or fitness for a particular purpose.

sizeof(char): 1

sizeof(short): 2

sizeof(int): 4

sizeof(long): 4

sizeof(long long): 8

sizeof(float): 4

sizeof(double): 8

sizeof(long double): 16

sizeof(int *): 8

$ which gcc

/mingw32/bin/gcc

$ gcc --version

gcc.exe (rev3, built by msys2 project) 9.1.0

this is free software; see the source

for copying conditions. there is no

warranty; not even for merchantability or fitness for a particular purpose.

sizeof(char): 1

sizeof(short): 2

sizeof(int): 4

sizeof(long): 4

sizeof(long long): 8

sizeof(float): 4

sizeof(double): 8

sizeof(long double): 12

sizeof(int *): 4

# 這是64-bit centos 下的 64 位 gcc 編譯器的結果

$ getconf long_bit

64$ gcc --version

gcc (gcc) 4.8.5 20150623 (red hat 4.8.5-39)

this is free software; see the source

for copying conditions. there is no

warranty; not even for merchantability or fitness for a particular purpose.

sizeof(char): 1

sizeof(short): 2

sizeof(int): 4

sizeof(long): 8

sizeof(long long): 8

sizeof(float): 4

sizeof(double): 8

sizeof(long double): 16

sizeof(int *): 8

同一資料型別的有符號和無符號長度相等

指標長度等於機器字長

32和64位cpu上,float 都是32位,double 都是 64 位;

雖然 int 用習慣了,但它只保證長度不低於16位。

按c的標準,float至有6~7位精度;double 有 10 位精度(但實現一般都提供了至少 13 位有效數字)

c語言之資料型別長度

c語言之資料型別長度 分享 2011 05 30 20 57 青雲清 瀏覽 219072 次 急2011 05 30 21 04 提問者採納 不要誤人子弟啊 搞清楚再貼出來 追問 那你的答案是啥呢?追答 16位 2,4,4,8,1 32位4,4,4,8,1 二 資料型別對應位元組數 程式執行平台 不...

c語言資料型別位元組長度

short與long兩個限定符的引入可以為我們提供滿足實際需要的不同長度的整形數。int通常代表特定機器中證書的自然長度。short型別通常為16位,long型別通常為32位,int型別可以為16位或32位。各編譯器可以根據硬體特性自主選擇合適的型別長度,但要遵循下列限制 short與int型別至少...

C語言 單詞長度

c語言 單詞長度 你的程式要讀入一行文字,其中以空格分隔為若干個單詞,以 結束。你要輸出這行文字中每個單詞的長度。這裡的單詞與語言無關,可以包括各種符號,比如 it s 算乙個單詞,長度為4。注意,行中可能出現連續的空格。輸入在一行中給出一行文字,以 結束,結尾的句號不能計算在最後乙個單詞的長度內。...