1. 程式人生 > >淺談static與函式指標

淺談static與函式指標

限定儲存域:被static修飾的變數無論是區域性變數還是全域性變數都將被編譯器存放在靜態區。而實際上在gcc編譯完生成的ELF格式檔案中並沒有靜態區這個概念,所謂靜態區是我們在概括討論程式資料段的一種泛稱。實際上編譯器會根據具體情況把被static修飾的變數分為兩類:當變數被定義並初始化為非零值的時候,變數將放在.data段;當否則為初始化或初始化為零的時候將放在.bss段。我們在不深入討論的時候暫且可以將此兩段概括為靜態區。而放在靜態區的變數由於儲存域的原因導致生命週期很長,長度為程式(確切講應該是該程式執行後的程序)的一次執行過程,而普通區域性變數由於在執行過程中被系統分配在棧區所以生命週期只是一次函式的呼叫過程。