/*
static
c語言:
static 的作用:
1、全域性靜態變數:
(1)在全域性靜態區分配記憶體
(2)如果沒有初始化,其預設值是0
(3改變量在本檔案內從定義開始到檔案結束可見
2、區域性靜態變數:
(1)改變量在全域性靜態區分配記憶體
(2)如果不顯示初始化,那麼將被初始化為0
(3)它始終在全域性靜態區,直到程式執行結束
(4)其作用域為區域性作用域,當定義他的函式或語句塊結束時,其作用域隨之結束
3、定義靜態函式
(1)靜態函式只能在本原始檔中使用
(2)在檔案作用域中宣告的inline函式預設為static型別
c++:
c++中新增了兩種作用:定義靜態資料成員或靜態函式成員
(1)記憶體分配:靜態資料成員在程式的全域性靜態區分配
(2)初始化和定義:靜態資料成員定義時要分配空間,所以不能在類宣告中定義
*//*
extern:
extern 可以置於變數前或函式前,以在別的檔案中標識變數或函式的定義,並提示編譯器遇到此變數或函式時在其他模組中尋找其定義,
對於extern變數來說,僅僅是乙個變數的宣告,並不是定義,不會分配記憶體空間。
extern 表示將變數或函式宣告作為外部鏈結,變數預設是內部鏈結,函式預設是外部鏈結
*/#define _crt_secure_no_warnings
#include #include #include extern int num = 5;
void func();
char *test01()
void test02()
void main()
static extern分析總結
一 c語言記憶體空間布局 下面是google上找的一張c記憶體布局圖,我先基於這張圖介紹下各個記憶體區域的情況 1 正文 段 每個程式開始前,都有系統載入 指令到這裡,用於執行,當然都是機器碼 2 初始化的資料段 存放已經初始化的非自動變數,如全域性變數int i 0 等等 3 未初始化的資料段 b...
看書雜記 static extern
一 函式中的區域性變數都是動態分配儲存空間的,資料儲存在動態儲存區中,函式呼叫結束後即消失,釋放儲存空間。若是希望函式中的區域性變數在呼叫結束後仍保留原值,也不釋放儲存單元,則可使用關鍵字static宣告區域性變數是靜態變數。函式編譯時在靜態儲存區分配儲存單元,函式呼叫結束後不釋放儲存單元,直到程式...
作用域,變數(static,extern)
1.extern既可以在同檔案中使用也可以跨c檔案使用,在同檔案可以跨作用域。2.全域性變數 int a 初始化預設為0 區域性變數int a 初始化可能為隨機值,有些平台可能無法通過 如果加static預設為0 3.static既可以修飾全域性變數也可以修飾區域性變數 static區域性變數初始化...