上一篇我们讲的聊聊C语言-我的地盘我做主,相信大家对变量的存储类型和变量的作用域有了一定的了解。现在我们马上公布上期的答案如下:
#include<stdio.h>
int a=1;//存储在程序的数据段
int b;//存储在程序的bss段
int main(void)
{
auto int a=2;//存储在栈中
static int c=2;//存储在数据段
{
int c=3;//存储在栈中
int b=4;//存储在栈中
}
printf("a=%d b=%d c=%d\n",a,b,c);
return0;
}
打印输出为:a=2 b=0 c=2
亲们不知道做对没有?呵呵
接下来进入我们这篇的主题-聊聊C语言中预处理功能中的宏定义。
C代码如何变成可执行程序?
一般来说一段代码变成一个可以运行的程序是需要编译器进行处理的,而编译器对C语言的处理的过程包括四个:预处理-> 编译->汇编->链接。经过这四个步骤你的代码就可以变成可执行文件。预处理主要是对宏定义,文件包含,条件编译进行处理;编译是把汇编语言编译成汇编文件;汇编是把生成的汇编代码汇编成目标文件;链接是把我们的目标文件链接成一个可执行文件。编译器对于宏的处理是放在第一阶段的,可见它的重要性。
什么是宏?
一般说来,宏是一种规则或模式或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。这种替换在预编译时进行,称作宏展开。C语言的宏预处理器的工作只是简单的文本搜索和替换。
C语言怎么定义宏?
在C语言中定义宏我们用的关键字是#define
C语言中宏定义的分类
C语言中宏定义需要注意的问题
C语言中宏的使用
我们的宏定义就讲到这里,大家有什么不明白的或者有什么意见可以关注下面的微信公众号,我们一起在线讨论。下面是针对这篇小编为留的练习题,请实现如下宏答案会在下一篇公布: