OpenEdv-开源电子网

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

关于*=是什么意思和用法

[复制链接]

6

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-8-15
在线时间
5 小时
发表于 2017-1-24 12:08:20 | 显示全部楼层 |阅读模式
1金钱
也许这个问题对你们有些高手来说没什么,但我是真的需要知道,查百度也没找到,请各位高手不要吝啬赐教。

最佳答案

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

这个问题跟高手毫无关系,是C语言的基础知识 a*=b; -> a=a*b;
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

54

主题

372

帖子

0

精华

高级会员

Rank: 4

积分
979
金钱
979
注册时间
2016-6-15
在线时间
474 小时
发表于 2017-1-24 12:08:21 | 显示全部楼层
这个问题跟高手毫无关系,是C语言的基础知识 a*=b;  -> a=a*b;
回复

使用道具 举报

39

主题

174

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
450
金钱
450
注册时间
2017-1-17
在线时间
76 小时
发表于 2017-1-24 12:53:41 | 显示全部楼层
楼上正解,我来水贴
回复

使用道具 举报

33

主题

481

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
5075
金钱
5075
注册时间
2013-10-4
在线时间
654 小时
发表于 2017-1-24 13:08:46 | 显示全部楼层
2楼正解
回复

使用道具 举报

3

主题

548

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1383
金钱
1383
注册时间
2015-2-3
在线时间
197 小时
发表于 2017-1-24 13:29:09 | 显示全部楼层
效果上相当于a=a*b;但是实际的效率更高
a=a*b;实际上是这样的:
1.生成a的副本,记为a'
2.计算a'*b
3.将结果赋值给a
4.销毁a'
而a*=b;就只需要:
1.将a乘上b
详细了解需要汇编的知识,感兴趣可以去看
回复

使用道具 举报

9

主题

538

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3371
金钱
3371
注册时间
2015-1-7
在线时间
794 小时
发表于 2017-1-24 14:36:20 | 显示全部楼层
yyx112358 发表于 2017-1-24 13:29
效果上相当于a=a*b;但是实际的效率更高
a=a*b;实际上是这样的:
1.生成a的副本,记为a'

我个人觉得“*=的效率高”这点可能要看编译器吧

我试验过了IAR for ARM 6.7
分别从优化等级、变量位置(局部变量,全局变量)对比了a = a*b 和 a *= b汇编后的结果。
两个汇编后完全一致的。
机器生汇编,汇编生B,B生C,C生万物.... 经过长期对C语言的研究,目前只有两个方面不懂:这也不懂,那也不懂
https://github.com/ianhom
回复

使用道具 举报

0

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2016-11-24
在线时间
8 小时
发表于 2017-1-24 19:24:54 | 显示全部楼层
yyx112358 发表于 2017-1-24 13:29
效果上相当于a=a*b;但是实际的效率更高
a=a*b;实际上是这样的:
1.生成a的副本,记为a'

绝大多数现代编译器都会优化消除这二者的差异。倒是C++因为存在运算符重载可能有差别。
回复

使用道具 举报

6

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2016-8-15
在线时间
5 小时
 楼主| 发表于 2017-1-24 22:46:24 | 显示全部楼层
好吧,其实是我脑袋有点转不过弯来。
回复

使用道具 举报

11

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
369
金钱
369
注册时间
2016-11-11
在线时间
57 小时
发表于 2017-1-24 23:02:44 | 显示全部楼层
楼上正解,我来水贴
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 06:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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