記憶體模型和命名空間

2021-07-04 07:41:57 字數 427 閱讀 1639

編譯器將分配固定的記憶體塊來儲存所有的靜態變數,這些變數在整個程式執行過程中一直存在。

另外,如果沒有顯示的初始化靜態變數,編譯器將把它設為0,在預設情況下,靜態陣列和結構將每個元素或成員變數的所有位都設定為0;

定義方式:

1)外:必須在**塊的外面宣告它,可使用external修飾也可省略;

2)內:必須在**塊的外邊宣告它,並且使用static限定符

3)無:必須在**塊內部宣告,並使用static修飾。

在多檔案程式中,可以在乙個檔案中(且只能在乙個檔案中 )定義乙個外部變數。使用該變數的其他檔案必須使用關鍵字extern宣告它。

靜態的區域性變數,該變數只在該**塊中可用,但他在改**塊不處於活動狀態下依然存在,另外如果初始化了靜態區域性變數,則只在啟動時進行一次

初始化,以後再呼叫函式時不會像自動變數那樣初始化。

記憶體模型和命名空間

include include coordin.h 尖括號 在標準標頭檔案中查詢 雙引號 先在當前g 先在當前工作目錄查詢 找不到,則去查詢標準標頭檔案 int x 在程式開始執行所屬的函式和 塊時建立 在執行完函式和 快時被釋放。register int x 變數儲存在暫存器中,因此不能通過位址來...

c 記憶體模型和命名空間

一 標頭檔案 1.c 程式一般分為3部分 標頭檔案 實現標頭檔案的原始檔 呼叫函式的原始檔 2.標頭檔案常包含的內容 1 函式原型 2 使用 define或者const定義的符號常量 被宣告為const的資料具有特殊的鏈結屬性 外部 內部 無 具備的鏈結性為內部,其作用域為包含標頭檔案的當前原始檔 ...

C 記憶體模型與命名空間

hpp檔案與.h檔案都是header檔案,但是.hpp檔案中包含了函式實現,減少了需要編譯的.cpp檔案數量。在ide中,不要將標頭檔案加入到專案列表中,只需源 標頭檔案由 include指令管理。為什麼.hpp中包括模板函式的實現,當該.hpp檔案被多個cpp用 include包含,鏈結時不會出現...