免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chinesedragon
打印 上一主题 下一主题

[C] 讨论,为什么++运算符会出现 [复制链接]

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
11 [报告]
发表于 2012-08-15 16:50 |只看该作者
folklore 发表于 2012-08-15 15:29
回复 1# chinesedragon


BS

论坛徽章:
0
12 [报告]
发表于 2012-08-15 16:52 |只看该作者
我也进来瞄一眼

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
13 [报告]
发表于 2012-08-15 17:03 |只看该作者
回复 7# folklore
看到妇科老人,心情大好,恬作一解
之所以C中有++(我只说前置++,而后置++我一直认为是累赘,应当废弃),盖因汇编指令中有++(INC指令),这是主因。
汇编指令中有ADD,为什么还需要INC?那是因为INC比ADD“更基本”,这同样也是C中有++的原因。举个例子,拉屎当用纸,报纸可也,但报纸上有油墨字,偶尔一用尚可,经常用就觉得憋屈了,如果用来搽屁股,是无需印上油墨字的,这就诞生了“厕纸”。
C在这一点上(有了++)更是幸运的明智,因为在C++中,++可以重载,不局限于整数的数值计算。比如,对于std::list的迭代器,++是有意义的,而+是无意义的。

总之,
在同适用的情况下,+ 比 ++ 多做了无聊的事,所以需要清纯的++的存在
在不同适用的情况下,++可以模拟出+,而+却无法裁剪出++,所以必须要有++的存在

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
14 [报告]
发表于 2012-08-15 17:24 |只看该作者
回复 9# bruceteen
使用
[[hide]隐藏内容[[/hide]即可

除了Inc,还有一个原因是

  1. for(int i=0;i<10;i++) xop();
复制代码


就是循环控制变量
在例如X86上,这个可以用

  1. move %ecx,10
  2. call xop;
  3. loop
复制代码



实现,如果你用

  1. for(int i=0;i<10;i+=1) xop();
复制代码


早期的CPU就可能无法为些代码提供优化,因为它们还没现在那么聪明(不能将x+=1和x+=2区分)
当然,这个只是例子,因为事实上,loop指令很慢

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
15 [报告]
发表于 2012-08-15 17:27 |只看该作者
回复 11# hellioncu


    我只是第一次发这种代码而已

论坛徽章:
26
CU大牛徽章
日期:2013-03-13 15:15:08水瓶座
日期:2014-08-31 19:44:01卯兔
日期:2014-09-05 08:48:33摩羯座
日期:2014-09-07 13:03:35子鼠
日期:2014-09-10 08:42:36白羊座
日期:2014-09-20 12:39:07丑牛
日期:2014-09-24 07:35:252015年亚洲杯之阿联酋
日期:2015-02-03 17:42:542015年亚洲杯之卡塔尔
日期:2015-02-11 13:13:022015年亚洲杯之约旦
日期:2015-03-03 15:10:522015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之卡塔尔
日期:2015-03-27 14:08:09
16 [报告]
发表于 2012-08-15 17:33 |只看该作者
本帖最后由 Third-Edition 于 2012-08-15 17:34 编辑

我觉得不是,从汇编指令来看这两种的汇编代码是不一样的。省空间是省磁盘空间吗?++ i确实比i=i+1少占2个字节可省的磁盘的空间不是内存空间吧

论坛徽章:
0
17 [报告]
发表于 2012-08-15 20:07 |只看该作者
回复一下看看是什么样子

ps: 优化那个说得有道理

论坛徽章:
12
巳蛇
日期:2013-09-16 15:32:242015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之约旦
日期:2015-02-11 14:38:37双鱼座
日期:2015-01-05 11:05:47戌狗
日期:2014-12-08 09:41:18戌狗
日期:2014-08-15 09:29:29双子座
日期:2014-08-05 09:17:17卯兔
日期:2014-06-08 15:32:18巳蛇
日期:2014-01-27 08:47:08白羊座
日期:2013-11-28 21:04:15巨蟹座
日期:2013-11-13 21:58:012015年亚洲杯之科威特
日期:2015-04-17 16:51:51
18 [报告]
发表于 2012-08-15 20:42 |只看该作者
.......................................

论坛徽章:
0
19 [报告]
发表于 2012-08-15 20:47 |只看该作者
游客,如果您要查看本帖隐藏内容请回复

论坛徽章:
31
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:16:55CU大牛徽章
日期:2013-09-18 15:18:22CU大牛徽章
日期:2013-09-18 15:18:43CU十二周年纪念徽章
日期:2013-10-24 15:41:34丑牛
日期:2013-12-01 10:11:07水瓶座
日期:2014-01-15 08:47:25
20 [报告]
发表于 2012-08-15 21:24 |只看该作者
看下               
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP