宏(macro)定义的简介

本文介绍了C语言中的宏定义,包括宏的简单使用、条件展示以及宏与函数的区别。宏定义可以理解为文本替换,常用于结构体定义、函数替代等,但需要注意操作符优先级、类型检查等问题,避免产生不可预期的结果。
摘要由CSDN通过智能技术生成

一直在嵌入式中混日子,很多知识点被遗忘的差不多了都,最近也是项目setting需要用宏定义来实现不同setting的区分,在makefile里倒是加好了宏,但是逻辑运算到着实有点手生就搜了搜资料,这里也给自己记录下宏的知识点吧。
不过呢先说一下我对宏定义的理解,宏定义就想象成为本替换,想了解清楚就文本替换还原回去就能明白了。
下面我们就开始进入主题,来进一步了解一下宏:

1. 宏简单实用演示:

1.1宏的简单使用说明

#define square(x) x*x
/*
*下面我们就来用一下这个宏
*/
printf("result = %d\n",square(5));
/*无可厚非,结果就是5*5=25*/
int a = 5;
printf("result1 = %d\n",square(a+1));
/*第一眼可能会脱口而出36,
*但是你文本替换一下就是这个样子x==a+1,所以x*x=a+1 * a+1=11
*/
//上面的可能不是你的本意,你的本意是要36这个值,就要用下面这个种方式
#undef square
#define square(x) (x)*(x)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值