1.#define定义标识符
生成可执行程序(后缀为exe文件)要经过预编译,编译,汇编,链接
如图所示,在文件的预编译阶段生成test.i文件时,define定义的符号会被替换,另外之所以test.i文件达到一万多行是因为把#include<stdio.h>也翻译了。
注意:define定义的标识符后面不要加分号;会造成语法错误。
2.#define定义宏
#define name( parament-list ) stuff
注意:参数列表的左括号必须与name紧邻,如果中间有空白,参数列表会被解析为stuff中的一部分。
#include<stdio.h>
#define N 5
#define Y(n)((N+2)*n)//定义宏
int main()
{
printf("%d", Y(5+1));//((5+2)*5+1)
}
上面代码貌似是100,但是打印出来却是55,所以在使用#define要多加括号
3.#define的替换规则
先替换#define定义的标识符,再替换#define定义的宏
4.#和##的使用
根据上面的代码我们发现字符串有自动连接的功能。
使用 # ,把一个宏参数变成对应的字符串
##把两边的符号连成一个符号