PHPz2017-04-17 14:52:54
編譯時被分配的空間,這個static int a會佔用最終可執行檔的靜態區。
運作的時候,作業系統直接分配記憶體把整個執行檔載入內存,a直接就獲得記憶體空間了。
天蓬老师2017-04-17 14:52:54
static變數是編譯時初始化,運行是分配記憶體。初始化的局部變數是編譯時初始化,運行時分配記憶體;未初始化的局部變數會被忽略。編譯好的執行映像,static變數應該存在data段,初始化的局部變數應該是bss段。運行之後,static變數被分配到常數儲存區,初始化的局部變數分配到堆疊上。