談談你對static
關鍵字的理解?
static既能夠修飾變數,又能夠修飾函式。
static修飾變數的時候,既能夠修飾區域性變數,又能修飾全域性變數。
區域性變數原來是儲存在棧空間的,當static
修飾區域性變數的時候,我們稱之為靜態區域性變數。它改為儲存在記憶體的全域性資料區中的靜態資料區,當沒有對它進行初始化的時候,系統預設初始化為
0,並且
static
區域性變數在所處模組在初次執行時進行初始化工作, 且只操作一次。static
修飾的區域性變數之後,可以延長區域性變數的使用週期,原來它只在函式或語句塊呼叫結束後釋放,現在延遲到程式結束。
特點: static
區域性變數的」記憶性」與生存期的」全域性性」
所謂」記憶性」是指在兩次函式呼叫時, 在第二次呼叫進入時, 能保持第一次呼叫退出時的值.
static修飾全域性變數的時候我們稱之為靜態全域性變數。它儲存在全域性資料區內的靜態儲存區(靜態儲存區在整個程式執行期間都存在),為對其初始化的時候,系統會預設初始化為
0,靜態全域性變數只能在本檔案中使用,不能在其他檔案訪問。它作用域準確地講從定義之處開始到檔案結尾。
為什麼要定義static
全域性變數呢?(定義靜態全域性變數的好處)
(1)全域性變數很危險,容易被修改,而靜態全域性變數不會被其他檔案所訪問,修改
(2)其他檔案中可以使用相同的名字的變數,不會發生衝突。
static修飾函式的時候我們稱之為靜態函式。
函式的定義和宣告預設情況下是extern
的,但靜態函式只是在宣告他的檔案當中可見,不能被其他檔案所用。
你為什麼要定義靜態函式呢?(定義靜態函式的好處:)
(1)其他檔案中可以定義相同名字的函式,不會發生衝突
(2)靜態函式不能被其他檔案所用。
面試 static關鍵字
static可以修飾變數和函式 修飾函式 改變該函式的連線屬性,表明該函式只能在當前檔案中使用 修飾變數 全域性變數 表明該變數只能在當前檔案中使用 函式體中的區域性變數 1.延長該變數的生命週期 和成員函式的生命週期一樣 2.類似該變數具有記憶的功能 3.存放位置不同於函式體中的區域性變數 因為c...
面試之關鍵字extern C
extern c 的作用及原因?答 1.作用是在c 語言裡面可以正確的呼叫c語言函式 原因是因為c 編譯時為了能支援函式過載以及多型的問題,會將函式名和引數聯合起來生成乙個中間的新函式名,鏈結時找的都是新的函式名,而對於c語言來說,不會產生新的函式名,所以在c 中用c語言的函式時,如果沒有特殊宣告,...
面試總結之關鍵字
1.ststic 1 修飾函式,只能在宣告他的原始檔中使用 在大型專案中,防止不同檔案中函式重名時使用。2 修飾儲存型別使之成為靜態儲存型別,修飾後的變數儲存在資料段,初值為0 分為兩種 b.修飾區域性變數 改變生命週期,函式呼叫結束不再釋放,整個程式執行結束釋放 區域性變數儲存在棧空間,stati...