C語言中宏的定義與使用

C語言中宏的定義與使用

三種類型的預處理指令

宏定義

宏是比較常用的一種預處理指令,這裏我們主要討論帶參數的宏。

帶參數的宏(函數式宏)定義如下:

#define EXAMPLE(x,y,z) 替換列表

注意:在宏的名字和左括號之間沒有空格。

宏的優點:

  • 程序可能會更快一些;

  • 宏更同意。

宏的缺點:

  • 編譯後代碼通常會變大。

  • 宏的參數沒有類型檢查。

  • 無法用指針來指向一個宏。

  • 宏可能會不止一次地計算它的參數。

文件包含

條件編譯

適用於預處理指令的規則

  • 指令都以 # 開始

  • 在指令的符號之間可以插入任意數量的空格和水平製表符。

  • 指令總是在第一個換行符處結束,除非明確地指明要延續。

  • 指令可以出現在程序的任何地方。

  • 註釋可以與指令放在同一行。

# include<stdio.h>
# define PRINT_INT(n) printf(#n " = %d\n", n)
# define PRINT_CHAR(s) printf(#s "%s\n",s)

int main(int argc,char *argv[]){
  int i = 4 , j = 5;
  char str[] = "Ivan";
  PRINT_INT(i/j);
  PRINT_CHAR(str);
  return 0;
}

未完待續… …

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