儲存類常用關鍵字與鏈結屬性

2021-10-02 18:28:51 字數 1087 閱讀 3726

儲存類常用關鍵字:

auto關鍵字:

用來修飾區域性變數,表示這個區域性變數是自動區域性變數,分配在棧上;平時定義區域性變數時就是定義的auto的,只是省略了auto。

static關鍵字:

1、用來修飾區域性變數(改變儲存類性質),表示靜態區域性變數分配在資料段/bss段上。非靜態區域性變數分配在棧上。

2、用來修飾全域性變數(改變鏈結屬性),靜態全域性變數鏈結屬性為內鏈結,非靜態全域性變數鏈結屬性為外鏈結。

靜態區域性變數和全域性變數:

靜態區域性變數和全域性變數在儲存類方面一樣;

靜態區域性變數和全域性變數在生命週期一樣;

靜態區域性變數作用域是**塊作用域(和普通區域性變數一樣)、鏈結屬性為無鏈結和全域性變數作用域是檔案作用域(和函式一樣)、鏈結屬性為外鏈結。

register關鍵字:

修飾變數時,編譯器會盡量將它分配到暫存器中,用於提高訪問效率。但是暫存器的數量是有限的,一般慎用。

extren關鍵字:

用來宣告全域性變數,宣告的目的是為了在乙個檔案中使用另外乙個檔案定義的變數。

eg:在a.c中使用b.c中定義的變數,就需要在a.c中用extren宣告該變數。

volatile關鍵字:

用來修飾乙個變數,表示這個變數可以被編譯器之外(例如:中斷isr中引用的變數、多執行緒中共用的變數、硬體會改變的變數)的東西所改變。

編譯器遇到volatile修飾的變數時,就不會對變數進行優化(優化的意思是編譯器會自動將一些它認為無意義的一些操作去掉),就不會出現因為優化而出現的錯誤。

鏈結屬性:

1、加上extren就是明確宣告這個變數為外鏈結屬性。

2、全域性變數應該定義在c檔案中,並在標頭檔案中進行宣告,不要定義在標頭檔案中。

3、在b.c中引用a.c中定義的全域性變數/函式的兩種方法:

一、在a.h中宣告該函式/全域性變數,然後在b.c中/#include;

二、在b.c中使用extren顯示宣告要引用的函式/全域性變數。

屬性關鍵字

從atomic關鍵字說到多執行緒安全 內含ios給 加鎖方法總結 自旋鎖和互斥鎖區別 屬性關鍵字 ios屬性關鍵字 nonatomic 關於執行緒安全 讀寫許可權 引用計數 unsafe unretained weak copy atomic是預設的原子操作關鍵字,atomic也就代表其具有原子性 ...

屬性與方法 this super關鍵字

1.屬性與方法 屬性和方法都是類的成員,用於描述類的特徵,每個類都可以有若干個屬性 若干個方法。public class sample 屬性用於描述可以使用值進行量化的特徵,通常屬性的名稱會使用名詞,例如 public class person 方法用於描述動作或者行為,通常方法的名稱是動詞,例如 ...

常用關鍵字

1 typeof關鍵字 作用 返回用字串形式返回物件的型別,例如trace typeof 10 輸出number 注意 返回的字串不一定是類名的小寫,下面是typeof物件型別和返回結果對照表 intnumber uint number number number array object bool...