C 語言中'register' 和'int' 的區別
在C 語言中聲明變數時,開發者可以使用'register '關鍵字提示編譯器特定變數應駐留在處理器暫存器而不是記憶體中。例如,考慮以下程式碼:
int x = 7;
和:
register int x = 7;
這兩個範例之間的差異在於「register」關鍵字的用法。在第一種情況下,「x」變數被宣告為整數並將駐留在記憶體中。在第二種情況下,「register」關鍵字向編譯器建議將「x」儲存在處理器暫存器中是有益的。
但是,要注意的是,編譯器可以自行決定忽略這一點建議。正如Herb Sutter 在“不是的關鍵字(或另一個名字的評論)”中斷言:
“寄存器說明符與自動說明符具有相同的語義......”
換句話說,使用“register”只是指示編譯器以類似於“auto”關鍵字的方式分配“x”,這對變數的位置沒有特定的影響。因此,雖然「register」傳達了對暫存器儲存的偏好,但其實際實作由編譯器自行決定。
以上是C 中的「register」和「int」有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!