在 C 或 C 中,有四種不同的資料型別用於整數型資料。這四種資料型別分別是short、int、long 和long long。每種資料類型佔用不同的記憶體空間。大小在不同的體系結構和不同的作業系統中有所不同。有時 int 需要 4 個字節,有時需要 2 個位元組。編譯器也會發生這種情況。所以我們可以使用交叉編譯器。
交叉編譯器基本上是一個編譯器,它能夠為目前平台以外的平台進行編譯。
所以如果我們要編譯以下內容程式碼在32位元系統和64位元系統中,會產生不同的輸出。
#include<stdio.h> int main() { printf("Size of int : %ld Bytes</p><p>", sizeof(int)); printf("Size of long : %ld Bytes</p><p>", sizeof(long)); printf("Size of long long : %ld Bytes", sizeof(long long)); }
Size of int : 4 Bytes Size of long : 4 Bytes Size of long long : 8 Bytes
因此,從這個範例我們可以很容易地了解到,long 資料型別因編譯器而異。那麼背後的原因是什麼呢?
CPU透過提供記憶體位址暫存器(MAR)的位址來呼叫主記憶體(RAM)中的資料。找到該位置後,會將其傳送到記憶體緩衝暫存器 (MBR)。資料被儲存到CPU暫存器中以供進一步使用。所以資料匯流排的大小決定了CPU暫存器的大小。對於32位元系統,一次只能呼叫4位元組資料。如果資料大於32bit,則需要兩個週期。因此對於較小的數據來說沒有任何區別。
以上是在C語言中需要使用長整型資料型別的詳細內容。更多資訊請關注PHP中文網其他相關文章!