推 amozartea:所以應該是我被這本書搞混觀念了= = 謝謝您 01/19 15:17
推 diabloevagto:先推在說,我判斷動態的方式是,只要沒new就不是 01/19 15:18
→ tropical72:static 變數放在哪一般書應該不會探討,但我沒會錯意的 01/19 15:57
→ tropical72:話,static 似乎是放在 bss (自我修養 p59) 01/19 15:58
→ tropical72:(所以 static 不是放在 stack,也不是放在 heap) 01/19 15:59
印象中,有沒有設定初始值的static變數,會被放在不同的地方(data或bss) (?)
推 tropical72:這是我納悶的地方,目前 static 變數即使不給初值給自動 01/19 16:05
→ tropical72:以0(or NULL)當初值,有什麼static變數是不會給初值的? 01/19 16:06
→ tropical72:如果都會給初值的話,不就必放在 bss ? 01/19 16:07
→ tropical72:sorry,我想到答案了,上述錯誤不少。 01/19 16:11
→ tropical72:沒給初始或初值給0是放在bss,其餘給初值放在data. 01/19 16:11
實驗了一下
int main() { static int x; }
text data bss dec hex filename
62 0 4 66 42 test.o
int main() { static int x = 10; }
text data bss dec hex filename
62 4 0 66 42 test.o
int main() { static int x = 0; }
text data bss dec hex filename
62 0 4 66 42 test.o
→ ericinttu:靜態 自動 動態 01/19 17:37
→ ericinttu:中間插話好像跟不到進度,算了,名詞還是用英文表示比較準 01/19 17:39
真的,寫成中文讓我覺得好混亂
※ 編輯: james732 來自: 101.13.58.252 (01/19 17:41)
→ ericinttu:我再補充兩行話好了,以我自己的觀點而言, 01/19 17:42
→ ericinttu:靜態=>static, 自動=>不加字,動態=>用new/malloc 01/19 17:43
→ tinlans:從沒看過 auto 和 dynamic 放在一起討論的 +1 01/19 18:26
→ tinlans:static local var 存放的位置基本上和 global var 一樣。 01/19 18:28
→ tinlans:不然還有哪個地方給你放存活期這麼長的東西... 01/19 18:29