OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32/FPGA开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 317|回复: 2

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

[复制链接]

  离线 

124

主题

437

帖子

0

精华

金牌会员

Rank: 6Rank: 6

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

最佳答案

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

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

使用道具 举报

  离线 

22

主题

703

帖子

1

精华

论坛元老

Rank: 8Rank: 8

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

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

使用道具 举报

  离线 

516

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

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

本版积分规则




关闭

正点原子双11大促销上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-11-16 17:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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