導航:首頁 > 源碼編譯 > c語言佔位元組是編譯器嗎

c語言佔位元組是編譯器嗎

發布時間:2022-08-03 16:11:45

Ⅰ C語言數據類型所佔位元組是和運行的機器位數有關還是編譯器有關

1)C語言一般指的是ANSI C的標准,對應的處理器分別是32位和64位的。
2)類型分為內置類型和自定義類型(非內置類型)
內置類型指的是無需聲明就可使用的類型,比如char,double,int等。
自定義類型指的是使用前必須聲明的,如struct StructName{};結構類型,int a[5];數組類型以及enum Color{};枚舉類型等。未經聲明的類型不可使用
3)ANSI C只對內置類型的大小進行了規范:
char |double| folat |int |long int| pointer
64bits 1 8 4 4 8 8
32bits 1 8 4 4 4 4
從上表可以看出,對於前三者,大小是統一的,只有long int 和pointer(指針)在不同的機器上佔用了不同的大小。他們的規則是,long int和pointer的大小等於機器位長(8位一個位元組).最後說明一點,unsigned的關鍵字和類型組合和該類型的大小相同,因為有符號和無符號只對編譯器有效,機器對他一無所知。

Ⅱ 為什麼在不同的編譯器上的C語言數據類型佔用的位元組大小都不一樣如何查看C語言不同的數據類型佔用多少位元組

不要相信數據類型的通常佔用位元組數, 比如認為int佔4位元組,這是通常情況下的佔用數
可以考慮用類似sizeof(float)這樣的方法去求取具體佔用位元組數,這個會給出准確數據

Ⅲ c語言數據長度16位和32位什麼意思

樓上不要胡說!
>>是說16位的機器就是2個,32位是4個嗎?
這句話說的不太對,
這個其實指的是編譯器的位數,
對於16位編譯器(例如,tc),int型佔2個位元組
對於32位編譯器(例如,vc,gcc),int型佔4個位元組
這里指的是編譯器的位數,不是cpu的位數

Ⅳ C語言中不同的數據類型的長度和什麼有關

和編譯器有關。
每種類型佔用的位元組數,是和編譯器直接相關的,也就是常說的編譯器的字長。
以整型系列的類型,char, short, int, long為例:
1 16位字長:
對於16位編譯器,char佔1位元組,short佔2位元組,int佔2位元組,long佔4位元組。
2 32位字長:
對於32位編譯器,char 佔1位元組,short佔2位元組,int佔4位元組,long佔4位元組。
3 64位字長:
對於64位編譯器,char佔1位元組,short佔2位元組,int佔4位元組,long佔8位元組。

Ⅳ 在c語言中,int,char,short三種類型數據在內存中所佔的位元組數由什麼決定

通常char佔1個位元組,short佔2個位元組。原因是,1個位元組可以表示一個ASCII碼,為了提高計算機的數據處理能力,short用一個位元組遠遠不足,但限於早年的存儲器體積和價格,用2個位元組也是不得以的事情。現在,存儲器的體積不再是考慮的因素,價格也不是「事」,CPU的數據寄存器已經是64位(8個位元組),32位的CPU已近末日黃昏,所以short用8個位元組表示不再是夢。所謂64位的CPU,指的就是其數據寄存器(包括指令寄存器)的寬度是64bits,一次讀取、存儲64bits最為快捷,這就是int類型數據的標准寬度。

Ⅵ c語言int類型占的位元組數因不因機子是64位還是32位的而改變啊

是和編譯器的位數有關,而不是操作系統或者CPU的位數

例如:
在16位編譯器(例如:TC)上,int型佔2個位元組
在32位編譯器(例如:VC,GCC,CFree等)上,int型佔4個位元組

Ⅶ 關於C語言中結構體所佔內存大小的疑問,我用的編譯器是VC6.0,int佔4個位元組,char型佔1個位元組,但結果為28

編譯器是自己按最大位元組對齊~
也就是說
在這裡面 int有4個位元組 都已4位元組對齊
char【20】 有20個位元組
然後char sex 1個位元組 但是對齊後變成4
最後整形是4
所以一共28

在程序前面
#pragma pack ()
就可以取消編譯器自動對齊 會輸出25

Ⅷ c語言的位元組數是什麼意思

int佔多少個位元組是由編譯器決定的,ANSI標準定義int是佔2個位元組.
TC是按ANSI標準的,它的int是佔2個位元組的.
你可以在TC里試.printf("%d",sizeof(int));結果是2;
但是在VC里,一個int是佔4個位元組的,在VC裡面,
printf("%d",sizeof(int));
cout<<sizeof(int);結果都是4.
不同的編譯器,規定也不一樣.
float,double也是一樣的,在不同的編譯器里,占的位元組是不一樣的.

閱讀全文

與c語言佔位元組是編譯器嗎相關的資料

熱點內容
用什麼工具製作安卓應用 瀏覽:484
單片機數碼管的代碼 瀏覽:775
第一款安卓手機是什麼牌子 瀏覽:394
java非同步web 瀏覽:270
51單片機讀tf卡 瀏覽:936
linux下獲取文件 瀏覽:318
加密文件電腦顯示無屏幕截取許可權 瀏覽:352
虛榮安卓用什麼充值 瀏覽:752
阿里雲沒有伺服器如何備案 瀏覽:706
python用戶特性總結 瀏覽:730
華為門鑰匙加密卡怎麼辦 瀏覽:921
南京解壓車要帶什麼 瀏覽:567
天堂2編譯視頻教程 瀏覽:398
伺服器沒有進程怎麼辦 瀏覽:789
阿里雲發布新物種神龍雲伺服器 瀏覽:64
數據結構遞歸演算法統計二叉樹節點 瀏覽:672
ev3怎麼編程 瀏覽:706
gzip壓縮教程 瀏覽:353
解壓模擬例子 瀏覽:989
流媒體伺服器如何實現視頻轉發 瀏覽:62