预定义符号
这些定义符号都是语言内置的
printf("%s\n",__FILE__);//绝对路径printf("%d\n",__LINE__);//代码所在的行号printf("%s\n",__DATE__);//Dec 17 2022(日期)printf("%s\n",__TIME__);//20:47:25(时间)printf("%s\n",__FUNCTION__ );//main(函数名)
define定义标识符
#define MAX 100 //代替数字
#define STR "呵呵" //代替字符串
#define reg register //代替关键字
#define do_forever for(;;) //代替一段代码
define 定义宏
参数替换到文本中
#define SQUARE(X) X*X
int main() {int ret= SQUARE(5);//25return 0;
}//#的使用,传递参数名
#define PRINT(X) printf("the value of " #X " is %d\n",X)
int main() {int a=10;int b=20;PRINT(a);//the value of a is 10PRINT(b);//the value of b is 20
}
//##的使用,将两端的符号拼接
#define CAT(X,Y) X##Y
int main() {int Class84=2022;printf("%d", CAT(Class,84));
}