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

本文介绍了C语言预处理的概念,包括文件包含、宏定义和条件编译。重点讲解了#include命令用于引入头文件,宏的使用如#define定义及宏替换,并通过实例解析了宏替换的工作原理和潜在问题。同时,提到了预处理在代码维护和管理中的作用。
摘要由CSDN通过智能技术生成

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

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

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

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

一,文件包含

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)

说了这么多,对于,我们只需要记得它只是简单替换即可!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阔升

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值