0
点赞
收藏
分享

微信扫一扫

预处理详解

写心之所想 2022-04-13 阅读 49
c语言

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.#和##的使用

根据上面的代码我们发现字符串有自动连接的功能。 

 使用 # 把一个宏参数变成对应的字符串

##把两边的符号连成一个符号

 

 

举报

相关推荐

0 条评论