C中static學習總結

2021-05-24 14:44:39 字數 1007 閱讀 2890

c

中的static

的作用,要根據上下文有所不同

1.如果修飾**塊外的變數或函式,是修改該變數或函式的鏈結屬性,讓他們只在當前原始檔內可以訪問,在其他原始檔不可訪問,因為預設的情況下,在所有**塊外的變數或函式都是

external

的,在其他的原始檔中都可以訪問,加上

static

的修飾,讓他們變成

internal

的,只在本原始檔可用,比如下面的**,在第

3行,第

5行加了

static

修飾符,使他們通過其他檔案無法訪問:

1 #include

2 3static int a;

4 int b;

5static int func(int n);

67 int main (int argc, char *argv)813

14 int func1(int n)

15 2.

當static

用在**塊內的變數修飾時,表明這個變數時乙個靜態變數,儲存在靜態儲存區,這種情況下相當於改變了變數的儲存屬性,因為預設的情況下,**塊內的變數為自動變數(

auto

),儲存在執行時的棧中,加上

static

修飾,他就儲存在靜態儲存區,在程式執行之前建立,在整個執行期間都存在,但這並不改變他的作用域。比如下面的**,在第

13行宣告了乙個區域性靜態變數:

1#include 2

3 4int main (int argc, char *argv)510

11int func1(int n)

12順便說一句,在

c++中,通常用

static

來修飾類的函式成員或資料成員,他的作用是表明這個函式或資料成員是屬於這個類的,而不是屬於某個特定例項物件的,可以通過

類名::

func

來直接訪問。

C 中static用法總結

1 c 語言的 static 關鍵字有三種 1.靜態區域性變數 2.靜態全域性變數 3.靜態函式 注 對應於上面,static修飾普通變數分為靜態區域性和靜態全域性兩種。靜態全域性變數和靜態函式的作用類似,均只在本檔案內可見,不能為其他檔案所用,故其實也可以將靜態全域性變數和靜態函式作為一類,而靜態...

c 中static作用總結

當同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性。舉例來說明。同時編譯兩個原始檔,乙個是a.c,另乙個是main.c。char a a global variable void msg int main 程式執行結果為 a hello由於所有未加static字首的全...

C 類中的static成員學習總結

c 類中的static成員學習總結 c 類背後蘊含資料抽象和封裝思想。資料抽象是一種依賴於介面和實現分離的程式設計技術。封裝是一項將低層次的元素組合起來形成的新的 高層次實體。對於類而言c 的全域性物件會破壞封裝 全域性物件需要支援特定類的抽象的實現。因為c 類是資料抽象和封裝的結果,在定義類的時候...