问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

第六题,宏代换,详细解释一下

发布网友 发布时间:2023-09-25 21:30

我来回答

1个回答

热心网友 时间:2024-11-24 16:59

定义宏的格式:
#define 宏 记号列表

你写完代码之后,编译器并不是直接开始编译,预处理器首先对源码文件进行一些预处理操作,其中的一项任务就是把你定义的所有宏替换成对应的记号列表。
这一步就是简单的文本替换,完全傻瓜式的复制粘贴,不会添加多余的符号。

把所有的f(a)替换成a*a,把f(b)替换成b*b。
f(a)/f(b)会被替换成:
a*a/b*b
而不是:
(a*a)/(b*b)
所以说结果是:
6*6/2*2 = 36
不是:
(6*6)/(2*2) = 9

如果你要达到上面的效果,则应该在宏定义里面加几个括号。
#define f(x) (x*x)
不过如果你给f传入(a+b)这种表达式:
f(a+b)
那么宏替换之后:
(a+b*a+b)
先计算:b*a。

如果要处理这种表达式形式的参数,则定义宏的时候变量也要加括号:
#define f(x) ((x)*(x))
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 出生于2014.10.12零晨2:45分。男娃娃杨姓起什么名字好。。(杨紫宇,杨... 帕拉梅拉95和98可以混加吗 保时捷帕拉梅拉2022款报价及图片加几号油 21款帕拉梅拉只能加98吗 羊和山羊有什么区别? 韩国小吃鸡蛋卷的做法 wo99伴奏盒这款小工具,哪位朋友可以提供一下吗?谢谢! 除了wo99以外,还有没有免费得伴奏下载网址呢 每天2个茶叶蛋一个月后 橱窗后的她,这个作文怎么写? 如何防止汽车亏电 老司机告诉你冬季热车的正确方法 昆明先生坡小区周边配套怎么样? 京润珍珠化妆品专柜哈尔滨在哪 哈尔滨会展中心有阿玛施专柜吗 哈尔滨卓展有博柏利专柜吗 生南瓜子对人体的好处 请问生南瓜子的功效与作用? 怎么删掉QQ登陆框多余的QQ号码? ...增值金额800元,合计金额5800元,请问这张卡相当于给顾客打几折... OPPO Find N王者荣耀打开之后是错乱的 iOS 13.4 教程:如何在iPhone 和 iPad 共享 iCloud 文件夹? 如何使 iCloud 云盘的某个文件夹停止同步? iOS 13 教程:如何从iPhone 和 iPad 共享 iCloud Drive 文件夹? 有半调子CJ的全文吗 请问谁有半调子cj的红颜劫全本 M4A1-指挥官解析 我应聘苏州义联五金这公司 的CAD制图这么样? 苏州义联精密五金有限公司做什么的? 苏州工业园区高新技术企业有哪些公司? 五行缺火 喜神为水 怎么办 家居装饰配饰怎么讲究 求高人指点 蛋奶的做法 airpods 2支持双设备连接吗 airpods可以分开连接两个手机吗 你们身边对百合网一站式服务有差评吗? 有新人在百合网一站式婚礼吗?效果好不?值得推荐吗? 七天利率为1.958怎么算? 孙浩和陶虹主演的电影《秘密》哪里有下载地址呀~好想看哦~ 北京旅游在哪预约疫苗,在北京怎么预约接种新冠疫苗 梦见家人买我的电脑