計算機科學里的宏(Macro),是一種批量處理的稱謂。一般說來,宏是一種規則或模式,或稱語法替換,用于說明某一特定輸入(通常是字符串)如何根據預定義的規則轉換成對應的輸出(通常也是字符串)。這種替換在預編譯時進行,稱作宏展開。
#include <stdio.h>#define MAX 100/*上述兩個稱為預處理指令,因為它們是有預處理器解釋的。在預處理階段,define將替換原來定義的值,include將拷貝包含文件的內容拷貝到源文件中*/1.簡單的宏定義
#define MAXSIZE 100#define int data2.宏函數
#define max(a, b) (((a) > (b)) ? (a) : (b))/**用于頻繁調用的函數,在預處理時替換直接展開,避免了函數調用時內存時間的開銷,宏宇類型無關,所以上述宏可以用于整型·浮點型的比較,也可用C++中或C99的inline:inline int max(int a, int b);*/3.宏的單行定義/多行定義 ①
#define A(x) T_##X#define B(x) #@x#define C(x) #x//A(1) == T_1//B(1) == '1'//C(1) == "1"②
#include <stdio.h>#define FOR for(i = 0; i < 10; ++i) { / 4.條件編譯#include <stdio.h>#define LOCALint main(){ //如果在之前定義LOCAL,則從重定向輸入輸出流 //反之,忽略中間的語句,即使用標準輸入輸出流 #ifdef LOCAL freopen("in.txt", "r", stdin); freopen("out.txt", "r", stdout); #endif return 0;}//防止頭文件重復包含#ifndef _STDIO_H_#define _STDIO_H_#endif /* _STDIO_H_ */新聞熱點
疑難解答