【初学者入门C语言】之编译预处理(十)_#define f(x,y)(x)--;(y)--;(x) (y);int i,a=3,b=4; f(3)

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

格式:

#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语言的初学者有问题随时都可以问我,随时为您解惑!!!

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

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值