C宏

一、宏指令       

         #                  空指令,無任何效果
         #i nclude      包含一個源代碼文件
         #define        定義宏
         #undef         取消已定義的宏
         #if               如果給定條件爲真,則編譯下面代碼
         #ifdef          如果宏已經定義,則編譯下面代碼
         #ifndef        如果宏沒有定義,則編譯下面代碼
         #elif            如果前面的#if給定條件不爲真,當前條件爲真,則編譯下面代碼
         #endif         結束一個#if……#else條件編譯塊
         #error        停止編譯並顯示錯誤信息

 

 

二、文件包含

 1、#define AAA
        #include "t.c"
        #undef AAA
        #include "t.c"

       
   2、#ifndef MY_H
         #define MY_H
          ……
         #endif

 

三、帶參數的#define指令

單純的展開,注意括號的使用

#define Cube(x) (x)*(x)*(x)
int num=8+2;
volume=Cube(num);
result : (8+2)*(8+2)*(8+2);


四、 #與##

#:出現在宏定義中的#運算符把跟在其後的參數轉換成一個字符串。有時把這種用法的#稱爲字符串化運算符

##:運算符用於把參數連接到一起

 

五、條件編譯指令

#if指令檢測跟在製造另關鍵字後的常量表達式。如果表達式爲真,則編譯後面的代碼,知道出現#else、#elif或#endif爲止;否則就不編譯。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章