如何系统学习C 语言(下)之 预处理命令篇

大话c语言(下)之 预处理命令篇

预处理就是在编译之前,通过一些预处理命令对源代码进行管理和控制的过程。

由源代码得到可执行的程序,会经过预处理、编译、汇编和链接几个过程

预处理命令大致可以分为文件包含、宏和条件编译几个部分,所有的预处理命令都是以“#”开头的。

这里只分享几个常见的预处理命令,至于一些不常见的,还是那句话,我们可以在需要用到它的时候再去学,到实践中去学。

一,文件包含 1,头文件

头文件也是一个文本文件,在C语言中,源文件通常都是以.c作为文件名的后缀,而头文件则是以.h作为文件名的后缀。在进行程序的编译时,需要对源文件进行编译,而头文件是不参与编译过程的。

2,#include命令 include命令用于包含头文件,即将一个指定的头文件的内容包含至当前文件中。 二,宏

最初设计宏的目的就是为了便于代码的维护,而随着技术的不断发展,目前可以通过宏实现代码管理、流程控制、错误和异常检测等功能。

对源文件进行编译前,预处理器会对源代码中的宏进行文本替换处理,即将宏名部分替换为所对应的宏值部分。因此,也常将这种宏处理的行为称为宏替换或宏展开。

1,宏的定义

可以通过#define 命令来定义一个宏。如下:

#define 宏名 宏值

宏名是一个标识符,为所定义宏的名字,可使用在源代码中。宏值为宏名所对应的值,它可以是一个常数、表达式、字符、字符串等。需要注意的是,宏定义并非C语言的语句,因此最后不需要加上分号。

简单体会一下宏:

#include<stdio.h> #define LEN 10 //宏定义 int main(){ for(int i=1;i<=LEN;i++) //使用宏 printf("%d ",i*10); return 0; }

在使用宏的时候,要特别需要注意的是:预处理器对宏的处理只是简单的替换行为

#include<stdio.h> #define NUM 2+3 int main(){ int n=NUM*NUM; printf("n=%d\n",n); return 0; }

上面这段代码的输出值是多少呢?是25吗?结果并不是25!该程序编译运行后,结果为n=11。因为经过宏替换后,源代码中的语句"int n=NUM*NUM;"会被替换为"int n=2+3 * 2+3;" 因此结果便为"2+6+3",结果为11。

那怎么改一下子,结果才为25呢?只需要将宏按如下定义即可:

#define NUM(2+3)

说了这么多,简单的说,宏就是让我们知道去简单替换!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgdxz.html