此問題可能是多餘的,但我沒有找到確切的答案。C 8位16位32位編譯器之間的區別
C 8位16位32位編譯器之間的區別是什麼?
.exe文件有所不同如何通過爲同一代碼的不同編譯器生成...........
此問題可能是多餘的,但我沒有找到確切的答案。C 8位16位32位編譯器之間的區別
C 8位16位32位編譯器之間的區別是什麼?
.exe文件有所不同如何通過爲同一代碼的不同編譯器生成...........
16位編譯器將該程序編譯爲16位機器代碼,該代碼將在具有16位處理器的計算機上運行。 16位機器碼將在32位處理器上運行,但32位機器碼不會在16位處理器上運行。 32位機器碼通常比16位機器碼快。
隨着16位編譯器的類型,大小(位)如下:
short, int: 16
long: 32
long long: (no such type)
pointer: 16/32 (but even 32 means only 1MB address-space on 8086)
隨着32位編譯器的對象的大小(位)如下:
short: 16
int, long: 32
long long: 64
pointer: 32
對於64位編譯器,對象大小(以位爲單位)如下:
short: 16
int: 32
long: 32 or 64 (!)
long long: 64
pointer: 64
[儘管上述值一般y正確,它們可能因特定操作系統而異。請檢查您的編譯器的文檔標準類型的默認大小]
以下可以解釋多一點... http://cboard.cprogramming.com/c-programming/96536-16-bit-compilar-32-bit-compilar.html
並非所有編譯器生成的.exe對於初學者來說,不同的平臺有不同的形式,你可以給它的代碼。
8位編譯器的目標微處理器與8位寄存器,16位和32位,也是64位。根據微處理器的不同,每個微處理器在內存和硬件的尋址方案上也經常有。
對於8/16/32/64位C編譯器中的每一個,都有許多針對不同微處理器的編譯器。每個平臺都會針對每個平臺進行各種優化。所以...
他們都完全不同。
還取決於處理器寄存器位。 32位編譯器可以編譯成只能在32位和64位微處理器上運行的32位機器碼。但不少於32位。
這是一個理論問題,還是你有一些特定的編譯器/體系結構? – NPE 2013-04-05 06:41:58
我不完全清楚,我只是想知道基本的區別。如果一些機構期望由8位編譯器生成的.exe,如amtel,我給由32位編譯器生成的.exe如GCC什麼使得區別..對不起,我真的很窮....... – krishna 2013-04-05 06:46:26