首頁  >  文章  >  後端開發  >  C 中的「register」和「int」有什麼區別?

C 中的「register」和「int」有什麼區別?

Barbara Streisand
Barbara Streisand原創
2024-10-24 05:09:30609瀏覽

What is the Difference Between 'register' and 'int' in C  ?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn