C語言 巨集定義 陣列

2021-10-09 14:09:42 字數 1363 閱讀 6553

介紹1)巨集定義就是用乙個識別符號來表示乙個字串,如果後面****現了該識別符號,就全部替換成指定的字串;

2)定義格式:

#define 巨集名 字串

巨集名是一種識別符號,遵從巨集定義命名規則;字串可以是數字,表示式,if語句,函式等,且不需要雙引號標記;

3)在預處理階段,對程式**現所有巨集名,預處理器都會用巨集定義中的字串去替代,這稱之為巨集替換或巨集展開;

示例:

#include

#define m(a) a*a+1

void

main()

細節:

a、巨集定義不是說明或語句,在行末不必加分號如果加上分號則連帶分號一起替換巨集名;

b、巨集定義必須寫在函式之外,其作用域在程式起始到結束,遇到#undef時則該巨集定義域結束;

#define m 5

void

fun(

)#undef m

//該巨集定義的作用域只存在於該函式

c、巨集定義允許巢狀,可以在巨集定義的字串中使用已經定義過的巨集名;

d、巨集定義可以定義資料型別;

4)帶參巨集定義

a、定義形式:#define 巨集名(形參列表) 字串(可使用形參);

b、呼叫形式:巨集名(實參列表);

c、在展開過程中不僅要進行字串的替換,實參也要對形參進行替換;

細節:1、帶參巨集定義中不會為形參分配記憶體,因為形參不必指明資料型別;

2、巨集名以形參列表之間不能有空格,否則會將形參列表也作為字串內容;

3、字串中的形參通常會加上(),避免出現錯誤;

介紹:1、可用於存放同一型別的多個資料;

2、陣列也是一種資料型別,構造型別;

3、存放的資料叫元素,陣列的開始下標為0;最後乙個元素的長度為陣列長度-1;

4、定義格式:

a、int a[3];a[0]=10;a[1]=11;a[2]=12;

b、int a[3]=;

c、int a=;

5、訪問陣列元素格式:陣列名[下標];

注意陣列名代表陣列的首位址,陣列的各元素位址連續分布,且有自己的位址;陣列一旦建立長度不可變;不為陣列賦予初值,則系統預設為0(全域性),否則系統分配(區域性);陣列的下標必須在0-陣列長度-1之間,否則報錯;陣列屬於位址傳遞,所以在函式呼叫進行操作時會改變陣列的值;

介紹:1)字串就是被雙引號標記的多個字元,c語言中沒有專門的字串變數,用字元陣列表示字串;

2)定義方法:

char s1[4] = ;

char s2=;

char s3[4]=『abc』;

cahr s4=『abc』;

char* s5=『abc』;

C語言巨集定義

c語言有很多預處理命令,如包含命令 include,巨集定義命令 define。預處理命令在程式編譯之前被編譯器處理,而巨集定義也在此時被替換。或c 語言源程式中允許用乙個識別符號來表示乙個字串,稱為 巨集 被定義為 巨集 的識別符號稱為 巨集名 在編譯預處理時,對程式中所有出現的 巨集名 都用巨集...

C語言巨集定義

乙個巨集定義的作用域是從定義處到 undef處或檔案結尾。undef num 現在此處num沒有定義。1.ifdef num 如果num有巨集定義就編譯此處。else 如果num沒有巨集定義就編譯此處 endif 不論num 有沒有巨集都編譯,即判斷體已結束。ifndef num 如果num沒有巨集...

C語言(巨集定義)

巨集定義是c提供的三種預處理功能 巨集定義 檔案包含 條件編譯 的其中一種。c語言執行的流程 1 編譯 形成目標 obj 2 連線 將目標 與c函式庫連線合併,形成最終的可執行檔案 3 執行 巨集定義也叫做 巨集替換 預編譯指令 作用 使用define指令 1 定義標示,防止檔案重複引入 如 ifd...