C語言基本語法——預處理器和預處理指令

  一、什麼是預處理器函數

  二、什麼是預處理器指令spa

  三、預處理器指令it

  四、宏指令io

  五、宏函數編譯

  六、宏函數的優缺點class

  七、條件編譯指令變量

 

一、什麼是預處理器gcc

  • 預處理器是一個程序,用來處理源程序中的預處理指令。數據類型

  • 一個程序在編譯以前通常都要通過預處理。語法

 

二、什麼是預處理器指令

  • 以「#」開頭的指令叫預處理指令

  • 能夠出如今任何位置,必須一行結束

  • 若是要換行,須得用"\"來鏈接兩行內容

 

三、預處理器指令

  • 文件包含

#include <>#include 「」

  • 宏定義

無參宏定義

有參宏定義

  • 條件編譯

#if

#ifdef 

#ifndef 

#endif

#elif

#else

#undef

#if defined

 

四、宏指令

  宏至關於文本的替換操做

  • 語法格式:

-定義在函數的外面
-格式:#define PI 3.14

  PI爲宏的文本內容 在編譯前將PI的內容替換成3.14

 

五、宏函數

  • 語法格式: #define MianJi(r) PI*r*r

  宏函數只是文本,只是至關於作了內容替換的操做,注意參數是沒有數據類型

 

六、宏函數的優缺點

  • 宏函數的優缺點

能夠代碼更簡單、更容易,避免大量使用。

  • 宏函數注意事項

– 宏函數中的參數必定要用括號括起來,以防止替換後的優先級問題。

– 宏函數的整個表達式也須要用括號括起來,以防止宏函數參於表 達式的運算

– 宏函數中的多條語句時,應寫成複合語句,以防止重複定義變量。

– 調用宏函數時,不要將++,--的表達式作爲參數傳遞,能夠先++,--後調用,或者,調用後++,--,以防止在宏函數中重複地 計算++,--

– 宏函數也能夠調用另外一個宏函數

 

七、條件編譯指令

  • 在代碼中設置編譯條件 根據編譯條件進行代碼的編譯並運 行。(跨平臺)

  • 在編譯文件的時候傳入一個參數,根據參數就能夠對代碼進 行有選擇的編譯。

gcc -DZHAOBENSHAN main3.c

  • 條件指令

#if 若是 #ifdef 若是定義
#ifndef 若是沒定義 #elif 若是 //else if

#else 不然 與 #if 對應關係
#endif 結束標識
#undef 取消宏和#define 定義宏

  • 編譯方式

  根據參數編譯

gcc -DXXX main.c

  根據宏值(參數)

#define ZHAOBENSHAN 1

  根據宏"值(邏輯)"進行編譯

#if ZHAOBENSHAN==1

相關文章
相關標籤/搜索