常量到底存在哪里呢?
比如:
int a, b;
a = b +3;
這個3存在哪里。
再如:
#define PI 3.1415920
這個PI存哪里。
謝謝!
uj5u.com熱心網友回復:
不存uj5u.com熱心網友回復:
http://edu.csdn.net/course/detail/2344 C語言指標與匯編記憶體地址-一.代碼要素uj5u.com熱心網友回復:
PI是宏,在預編譯的時候,PI會被替換成3.1415920對于3、3.1415920這些立即數,采用立即尋址方式,在執行至相應陳述句時,直接用mov指令存放至變數地址,或者用mov存放至暫存器,進行運算
uj5u.com熱心網友回復:
從反匯編的代碼中可以看到,對于a=b+3這種運算式,3并沒有存盤在哪個暫存器中,而是直接使用,就是樓上朋友說的,立即數尋址
對于#define PI 3.14.1920
這種宏,從反匯編的代碼中可以看到,是保存在記憶體中的
uj5u.com熱心網友回復:
存盤在記憶體中,資料段中。。uj5u.com熱心網友回復:
3不存盤,看匯編就可以知道,它是一個立即數。3.1415925的PI可以認為是存盤在只讀資料段(資料段分為只讀和可讀可寫的兩部分, Linux)
uj5u.com熱心網友回復:
沒有3.1415925 和 3 一樣
至于PI 不存在
uj5u.com熱心網友回復:
糾正 3.1415926 的確會占用記憶體而PI 還是不存的
預編譯之后 不存在
編譯器看不到PI這個符號更別說存了
uj5u.com熱心網友回復:
老師你這課怎么下架了?
uj5u.com熱心網友回復:
這個3? 3是常數,從來不存盤的啊。最多只是個臨時變數,不過數在計算機里會被存成二進制,注意下
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/94455.html
標籤:C語言
下一篇:求助:向檔案寫入資料時失敗
