「系統」對auto變數分配儲存空間,這些空間在哪裡?棧區嗎

時間 2022-05-23 10:45:12

1樓:匿名使用者

1. 所謂的系統,就是"編譯器",它連線的是程式和機器。

所謂的"分配",這個詞語在編譯器看來,就是用一個偏移地址來替代程式中的變數名稱-----因為機器只能理解偏移地址,人類只能理解變數名稱。

然後a,b,c這3個變數就成了,例如, [0008],[001b],[0020]這3個地址

a=b+c就變成了

mov ax [001b] b放入暫存器add [0020] 加上cmov 0008 ax 放入a這樣的機器指令... ...

2. "變數不是只能在第一個有效語句之前定義嗎"

這個取決於編譯器怎麼設計了,c語言本身的規範沒有這方面的嚴格約束,看製作c編譯器的公司如何規定他們的產品了。另外,如果副檔名是c或者cpp的,編譯器就看成c++的**,沒有這方面的約束。

2樓:

放在棧裡啊,或許不是一個棧吧,第二個系統應該是指作業系統吧,作業系統只管分配空間,編譯系統使用分配的空間,第三個我懂舉個例子吧

int main ()

int fun(int z)

第一個就是在普通語句中第一的變數,第二個是在符合語句中定義的變數,符合語句和普通語句沒什麼區別,ok完了。我只知道這些

c語言auto定義變數,關於c語言auto變數和static變數區別

在函式內部定義的變數成為區域性變數。在某些c語言教材中,區域性變數稱為自動變數,這就與使用可選關鍵字aut o定義區域性變數這一作法保持一致。區域性變數僅由其被定義的模組內部的語句所訪問。換言之,區域性變數在自己的 模組之外是不可知的。切記 模組以左花 括號開始,以右花括號結束。對於區域性變數,要了...

cad系統變數的設定方法,CAD系統變數的設定方法

小歆嵩 系統變數是由作業系統定義的資料儲存位置,無論誰登入該計算機,該位置都相同。administrators 組的使用者可以新增新的變數或更改這些值。cad系統變數cad系統變數是一些系統配置引數,有的像開關,有的是預設值,具體的有許多 在命令提示符下直接輸入surftab命令,指定一個新的值,然...

誰告訴我怎樣刪除auto病毒,懸賞80分

你會用光碟引導嗎?如果會的話那你就去 一個 深山紅葉 工具盤,然後用光碟引導進入無硬碟操作狀態,然後刪除碟符下的那輛個檔案,再執行,在hk loacal machine software microsoft windows currentversion run 下,找到帶aotu的選項,刪除,應該就...