2013-05-17 92 views
-9

是什麼爲編譯器寫入函數,併爲它分配內存?以及如何? 通常很容易看出數據結構存儲在內存中。但如何運作?像一個函數體中的語句?編譯器爲他們做了什麼?程序如何映射到計算機的內存和操作?

+0

我知道你們很聰明。但如果你沒有時間來幫助解決這個問題,請不要低估。對你來說一個簡單的問題可能對其他人來說仍然很難。謝謝 – nish1013

+1

你的問題被關閉的原因是它不是一個精確的問題 - 它需要或多或少的書來回答這個問題。在您之前的問題中提到的書籍幾乎完全相同。不要期望這裏的人不會發現你問的是相同的問題! –

+0

我已經評論過關於這個主題的大部分書籍,但有時候他們更困惑!然後從論壇尋求幫助。這發生在我身上,爲什麼我問這個問題。 – nish1013

回答

2

操作是您需要使某些工作有效的步驟。假設你有下面的代碼片段:

int a = 1; 
int b = 2; 
int c = a + b; 

這將涉及到一些存儲爲abc,以及某種操作的值存儲1a的,價值2b,然後計算a+b並將其存儲到c

瞭解它是如何工作的關鍵是瞭解電腦一般是如何工作的,這是一個相當複雜的課題,以完全覆蓋,我懷疑它是適合作爲這裏一個簡單的問題。

+0

因此編譯器生成這些指令,並且當程序加載時內存中存儲了這些指令?這是混亂,指令如何能像數據一樣存儲? – nish1013

+0

是的,說明存儲在內存中。在大多數(現代)系統中,指令和數據存儲在同一個存儲器中,只是在不同的位置。在較老的系統中,「代碼」有時以各種方式與「數據」分開存儲。 –

+0

非常感謝您的回覆。那麼CPU如何區分它的數據還是指令呢? – nish1013