【初学者入门C语言】之编译预处理(十)

个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主

💬 刷题网站:一款立志于C语言的题库网站蓝桥杯ACM训练系统 - C语言网 (dotcpp.com) 

 特别标注:该博主将长期更新c语言内容,初学c语言的友友们,订阅我的《初学者入门C语言》专栏,关注博主不迷路!

目录

前言

文件包含

#include

两种格式

#include<头文件名称>

#include"头文件名称"

头文件包含的顺序

宏定义

嵌套宏

举例

 有参数的宏定义

格式

举例

易错点

总结


前言

预编译伪指令一般都以#打头,且前面不能有其他字符,只能出现空白字符,执行过程是C的编译处理器对预编译伪指令进行处理后生成中间文件作为编译器的输入,因此所有的预编译伪指令都不会进入编译阶段。

文件包含

#include

#include伪指令用于包含一个头文件,头文件中存放的一般是模块接口,编译预处理器在扫描到伪指令后就用对应的文本内容替换它。

两种格式

#include<头文件名称>

一般用于包含的是头文件,指示编译预处理器在开发环境设定的搜素路径中查找所需要的头文件

#include"头文件名称"

一般用来包含自己编写的头文件。

头文件包含的顺序

1.当前所需的自定义头文件

2.第三方程序库的头文件

3.标准头文件

宏定义

宏定义相当于自己定义一个常量,宏定义具有文件作用域,宏定义晚后,后面任意一个地方都可以引用宏。

宏定义不是C语句,所以不需要使用语句结束符“;”

格式:

#define 宏名 宏体

举例

#define PI 3.14

为了便于区分,宏名为大写字母

嵌套宏

先完成一个宏定义,在第二个宏定义的宏体中包含了第一次宏定义的宏名

举例

#define PI 3.14

#define PI_2 (2*PI)

代码

#include <stdio.h>
#define PI 3.14
#define PI_2 2*PI

int main() {
	int r = 3;
	float l;
	l = PI_2 * r;
	printf("%.2f", l);
	return 0;
}

执行结果

 有参数的宏定义

与函数类似,宏定义中的参数称为形式参数

格式

#define 宏名(形参表) 宏体

举例

#define F(x,y) 2*x+y

代码

#include <stdio.h>
#define F(x,y) 2*x+y

int main() {
	int x = 2;
	int y = 3;
	int z = F(x, y);
	printf("%d", z);
	return 0;
}

执行结果

注意宏定义宏体是否加括号的运算结果是不同的 ,举例如下:

易错点

1.#define F (x*x+3*x)

代码

#include <stdio.h>
#define F (x*x+3*x)

int main() {
	int x = 2;
	int z = 3 * F + 4;
	printf("%d", z);
	return 0;
}

运行结果

带括号的执行的时候是3*(x*x+3*x)+4即3*(2*2+3*2)+4也就是34

2.#define F x*x+3*x

代码

#include <stdio.h>
#define F x*x+3*x

int main() {
	int x = 2;
	int z = 3 * F + 4;
	printf("%d", z);
	return 0;
}

执行结果

 不带括号的执行的时候是3*x*x+3*x+4即3*2*2+3*2+4也就是22

由上面两个例子可以看出宏定义到括号和不带括号是完全不一样的,这点十分容易错,大家一定要小心

总结

理解包含头文件,清楚头文件的两种格式,掌握宏定义及其嵌套,能够区分宏定义带括号和不带括号的区别。

各位C语言的初学者有问题随时都可以问我,随时为您解惑!!!

👍+✏️+⭐️是对博主最大的鼓励与支持!!!

  • 48
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 43
    评论
### 回答1: C语言是一种通用的、面向过程的计算机编程语言,它是一种中级语言,可以被编译成机器语言,它既可以运行在个人计算机上,也可以运行在大型机和小型机上。C语言是一种具有特殊语法、功能强大的编程语言,它拥有良好的结构,能够让程序员更有效地编写程序,以解决各种实际问题。 ### 回答2: C语言是一种高级编程语言,它是由贝尔实验室的Dennis Ritchie在20世纪70年代初开发的。与其他编程语言相比,C语言具有易学易用的特点,同时也具有强大的功能和高效的执行速度。 C语言设计简洁,适合处理各种任务。它的语法规则清晰明了,具有统一和一致的特点。C语言的基本数据类型包括整型、浮点型、字符型等,可以通过定义变量来存储和操作数据。 C语言支持面向过程的编程风格。它提供了丰富的控制结构,如条件语句、循环语句和跳转语句等。通过这些控制结构,程序员可以根据具体需求进行灵活的程序控制。 C语言还提供了丰富的库函数,用于实现各种功能和操作。这些库函数可以通过预处理指令#include来引入,使得程序的编写更加简便和高效。 C语言是一种可移植性很强的语言。由于C语言的设计目标是兼容各种硬件平台,因此几乎可以在任何计算机上编译和执行。这使得C语言成为了应用广泛的编程语言之一。 总结来说,C语言是一种经典且广泛应用的编程语言。它简洁易学,功能强大,并且具有高效的执行速度。无论是初学者还是专业程序员,都可以通过学习和使用C语言来实现各种应用和解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天寒雨落

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

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

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

打赏作者

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

抵扣说明:

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

余额充值