OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3897|回复: 2

内联函数是不是宏的一个变形

[复制链接]

172

主题

539

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3449
金钱
3449
注册时间
2015-10-5
在线时间
492 小时
发表于 2018-7-6 15:26:03 | 显示全部楼层 |阅读模式
1金钱

最佳答案

查看完整内容[请看2#楼]

并不是。如果用宏定义了函数,那么虽然在编译的时候,宏做了替代,但是生成的代码仍然只有一处(加入函数起始地址0xAAAA),不管何处调用该函数的时候,程序还是转跳到0xAAAA出执行(顶多参数不同)。内联函数会将相同的代码分布在不同的地址上,每个地址都有一套相同的代码。 当然,理解起来有些相似,最终的结果以及实现的目的并不一致。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

982

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
7864
金钱
7864
注册时间
2014-8-13
在线时间
1584 小时
发表于 2018-7-6 15:26:04 | 显示全部楼层
并不是。如果用宏定义了函数,那么虽然在编译的时候,宏做了替代,但是生成的代码仍然只有一处(加入函数起始地址0xAAAA),不管何处调用该函数的时候,程序还是转跳到0xAAAA出执行(顶多参数不同)。内联函数会将相同的代码分布在不同的地址上,每个地址都有一套相同的代码。

当然,理解起来有些相似,最终的结果以及实现的目的并不一致。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-7-7 01:17:37 | 显示全部楼层
只能说类似。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-26 06:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表