黑馬程式設計師 C語言預處理指令

2021-06-22 05:09:49 字數 1329 閱讀 6416

---------------------- asp.net+unity開發、.net培訓、期待與您交流! ----------------------

1.預處理指令,預處理指令分3種

1.1 巨集定義

1.2 條件編譯

1.3 檔案包含

2.預處理指令不會被編譯,它只會在程式被編譯之前給替換掉

2.1 不帶引數的巨集 

#define pi 3 // 一般巨集定義都是全部大寫

int a = pi; // 在程式被編譯之前,這裡的pi會被替換為3

2.2 帶引數的巨集定義

#define sub(a,b) a-b

int result=sub(2, 3); // 在程式編譯之前會被替換成這樣 result=2-3;

3. 條件編譯

#if defined(a)  // 如果這個a巨集被定義,那麼他就會進入這個if裡面

printf("我定義了a巨集\n");

#endif

#if !defined(b) // 如果這個b巨集被定義,那麼他就會進入這個if裡面

printf("我定義了b巨集\n");

#endif // 記得一定要加上這句

4. 檔案包含 所謂檔案包含是指乙個原始檔可以將另乙個原始檔的全被內容包含到自己的檔案中,檔案包含的命令一般形式是

#include 「檔名」

5. static-extern對函式的作用

5.1 外部函式:定義的函式能被本檔案和其它檔案訪問,預設情況下所有的函式都是外部函式,在不同       檔案中不能有相同名稱的外部函式

5.2 extern的作用:

5.2.1  完整的定義乙個外部函式

5.2.2  完整的宣告乙個外部函式

5.3 內部函式:定義的函式只能被本檔案訪問

不同檔案中可以有相同名稱的內部函式

5.4  static的作用:

5.4.1  定義乙個內部函式

5.4.2  宣告乙個內部函式

6. typedef 在程式設計中使用typedef目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個           是簡化一些比較複雜的型別宣告。

6.1 給結構體取別名 

typedef struct student

*student,_student;

_student p = ;//定義乙個結構體變數

6.2 給基本型別取個別名

typedef char * string;

---------------------- asp.net+unity開發、.net培訓、期待與您交流! ---------------------- 

黑馬程式設計師 12 C語言之預處理指令

1 所有的預處理指令都是以 開頭,且結尾沒有分號 2 預處理指令在 翻譯成0和 1之前執行 3 預處理指令可以出現在程式的任何位置,它的作用範圍是從它出現的位置到檔案尾。習慣上我們盡可能將預處理指令寫在源程式開頭,這種情況下,它的作用範圍就是整個源程式檔案4 c語言提供的預處理指令主要有 巨集定義 ...

黑馬程式設計師 C語言學習筆記(3) 預處理指令

c語言源程式在進行編譯 鏈結之前會進行檢測是否有一些特殊的預處理指令,若檢測一些特殊的預處理指令則會進行相應的處理。c語言中多有的預處理指令都以符號 開頭,並且結尾不使用分號。預處理指令在程式中出現的位置沒有限定,即可以出現在任何地方,它的作用範圍是從它出現的位置到檔案尾。但一般我們把預處理指令寫在...

黑馬程式設計師 C語言之預處理命令

asp.net unity開發 net培訓 期待與您交流!1.所有的預處理指令都是以 開頭 2.預處理指令分3種 1 巨集定義 2 條件編譯 3 檔案包含 3.預處理指令在 翻譯成0和1之前執行 4.預處理的位置是隨便寫的 5.預處理指令的作用域 從編寫指令的那一行開始,一直到檔案結尾,可以用 un...