[C]新手请教x+=y与x=x+y的问题

ck_lai
[C]新手请教x+=y与x=x+y的问题

书中提到:x+=y比x=x+y少一次运算,不明白为什么,能解释一下吗?

cheng_lai_shun
是的,我不会表达,所以解释不来!呵呵

cugb_cat
稍微有些优化功能的编译器,编译出来的汇编语句应该是一样的。

hemu1190
因为运算符重载的时候,+=是一个运算符;而+和=分别是单独的运算符!

ruoyisiyu
[quote]原帖由 [i]cugb_cat[/i] 于 2008-2-20 12:39 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7981735&ptid=1054698][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
稍微有些优化功能的编译器,编译出来的汇编语句应该是一样的。 [/quote]
i=0和i=i-i是一个效果

davycu
进来吓了一跳,还以为flw2同学呢,:shock:

ck_lai
[quote]原帖由 [i]cugb_cat[/i] 于 2008-2-20 12:39 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7981735&ptid=1054698][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
稍微有些优化功能的编译器,编译出来的汇编语句应该是一样的。 [/quote]

那效率就一样咯?

cugb_cat
[quote]原帖由 [i]ck_lai[/i] 于 2008-2-20 14:50 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7982578&ptid=1054698][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]


那效率就一样咯? [/quote]
是,提高效率不应把重点放在这方面,应该是算法的提高。

ck_lai
恩,谢了~~~~

roger0922
[quote]原帖由 [i]hemu1190[/i] 于 2008-2-20 12:51 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7981799&ptid=1054698][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
因为运算符重载的时候,+=是一个运算符;而+和=分别是单独的运算符! [/quote]
顶   前者做了一次运算  而后者做了运算后还要赋值于X

flw2
[quote]原帖由 [i]davycu[/i] 于 2008-2-20 13:42 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7982105&ptid=1054698][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
进来吓了一跳,还以为flw2同学呢,:shock: [/quote]
:outu:
实在不知道您从哪看出来我们是同学

fl3w
[quote]原帖由 [i]flw2[/i] 于 2008-2-20 15:48 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7982997&ptid=1054698][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]

:outu:
实在不知道您从哪看出来我们是同学 [/quote]
我们才是:em17: :em17: :em17:

davycu
回复 #11 flw2 的帖子

:shock: :em14: :em06:

flw2
有的系统指令支持把一个数a加到令一个数b并存储在b中,这样编译器可能不需要保存a+b的临时值
在没有这样指令的系统上,比如加法指令为add a,b,a 那么a+=b a=a+b,编译器即使不优化也-更应该-知道使用这个指令,而不是使用临时一个存储或者寄存器
但是我试验了两个系统,gcc对a+=b 和a=a+b都分别产生一样的指令

flw2
[quote]原帖由 [i]davycu[/i] 于 2008-2-20 16:43 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7983403&ptid=1054698][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
:shock: :em14: :em06: [/quote]
:outu: 你还这种表情呢?

davycu
回复 #15 flw2 的帖子

很抱歉无意中的一句话引起您的不快,解释一下我那句话:进来时第一眼看到楼主的头像(现在已经换了)跟阁下的一样,所以说了那句,“同学”只是我平时的习惯用语,不是说你们是同学

占用楼主地方了,还请见谅哈

flw2
[quote]原帖由 [i]davycu[/i] 于 2008-2-20 17:26 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7983734&ptid=1054698][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
很抱歉无意中的一句话引起您的不快,解释一下我那句话:进来时第一眼看到楼主的头像(现在已经换了)跟阁下的一样,所以说了那句,“同学”只是我平时的习惯用语,不是说你们是同学

占用楼主地方了,还请见谅哈 [/quote]
呵呵,没事,我也没有不愉快,只是这种情况下实在很难理解,你说呢
没事了,不用回

lvziwei
学习中

林有德
[quote]原帖由 [i]hemu1190[/i] 于 2008-2-20 12:51 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7981799&ptid=1054698][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
因为运算符重载的时候,+=是一个运算符;而+和=分别是单独的运算符! [/quote]

是的