宏定義基本語法
C 語言中,所有預定義的宏,都會在預處理階段進行替換。宏定義的語法爲:
#define 宏名 字符串
簡單宏定義
下面的示例中,預處理後,所有出現 MAX 的位置都會被替換爲 100:
#include <stdio.h>
#define MAX 100
int main() {
printf("MAX is: %d\n", MAX);
return 0;
}
宏定義中使用變量
#include <stdio.h>
#define CHANGE(x) (x * x)
int main() {
printf("CHANGE(10) is: %d\n", CHANGE(10));
return 0;
}
宏定義中使用 #
#
表示字符串化,單純的使傳過來的變量變成字符串。
#include <stdio.h>
#define CHANGE(x) #x
int main() {
printf(CHANGE(xyz));
return 0;
}
宏定義中使用 ##
##
是普通的鏈接符號,表示單純的鏈接前後的字符串。因爲是在預處理階段替換完成的,可以間接的使用變量。
#include <stdio.h>
#define DAY(x) day ## x
int main() {
int day1 = 11;
int day2 = 22;
printf("day is:%d\n", DAY(1));
return 0;
}