免费注册 查看新帖 |

Chinaunix

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

又发现一个C和C++的小不同 [复制链接]

论坛徽章:
0
81 [报告]
发表于 2011-10-21 10:13 |只看该作者
我继续抓辫子:

     但好歹是有所得:代码中不写实参、形参,省去了传递参数的开销。

------------- ...
AD8018 发表于 2011-10-21 00:40



    所谓真理多走一步就是谬误,大概就是这种了。很多岔子就出在随口多加一句上。

C标准只定义了“最终是什么”,并不理睬“实际是什么”。

实际就是:
1、使用全局变量会把程序结构搅的一团糟
2、参数传递的开销,可能非常非常小,至少远比有cache失效危险的引用全局变量小(破坏了数据局部性原则)。

关于参数传递/参数调用开销,有如下事实:
1、大多函数调用约定会优先使用寄存器(而不是栈),使得传递int之类cpu支持的东东的效率非常高
2、很多RISC处理器在摆脱了复杂指令带来的复杂性之后,会用节省下来的芯片面积实现海量的寄存器,甚至至少在9X年已经提出“寄存器窗口”概念。也就是把几十甚至上百个寄存器分组使用,使得函数调用仅仅是改变寄存器组。这时函数调用、参数传递之类的开销可以忽略不计——比如实际上可能只是修改一下寄存器组选择寄存器。

这种处理器,在函数调用嵌套深度“只有”十几层的时候,可认为函数调用无开销;再大就要把调用链最靠近根的寄存器缓冲到内存了。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
82 [报告]
发表于 2011-10-21 10:41 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
83 [报告]
发表于 2011-10-21 10:49 |只看该作者
本帖最后由 狗蛋 于 2011-10-21 10:53 编辑
回复  狗蛋


    没太理解。是否你的意思是永远不应该使用外部变量?
   如果使用的话,你认为什么样 ...
pmerofc 发表于 2011-10-21 10:41



1、第一个问题,回答是“我没往前走,你走了
2、第二个,回答是:根据我个人的工程实践经验,一般来说,适合/必须用singleton解决的,用外部变量就很合适。当然,如何初始化是个头痛的问题。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
84 [报告]
发表于 2011-10-21 10:54 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
85 [报告]
发表于 2011-10-21 11:00 |只看该作者
本帖最后由 三月廿七 于 2011-10-21 11:03 编辑
1、第一个问题,回答是“我没往前走,你走了”
2、第二个,回答是:根据我个人的工程实践经验 ...
狗蛋 发表于 2011-10-21 10:49


这个我也有体会, 所以 JAVA 才有了 "万物皆对象"  , 包括内置的数据类型也可以打包成对象
c 语言如果实践 singleton,  就需要把所有的外部变量放入结构体中.
面向对象的语言也都是这么做的.

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
86 [报告]
发表于 2011-10-21 11:01 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
87 [报告]
发表于 2011-10-21 11:06 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
88 [报告]
发表于 2011-10-21 11:12 |只看该作者
本帖最后由 三月廿七 于 2011-10-21 11:13 编辑
回复  三月廿七

我对java把main()也写到类里相当看不惯
pmerofc 发表于 2011-10-21 11:06

主要还是看个人的代码设计能力, 怎么样才能做到 "高内聚,低耦合"

如果变量已经不需要向外部传递了, 那么是不是外部变量已经无所谓了..

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
89 [报告]
发表于 2011-10-21 11:13 |只看该作者
欧阳锋和黄药师,总是互相有些苦恼的吧。。淡定,淡定。。
AD8018 发表于 2011-10-21 09:27



    不带这么侮辱人的吧,大哥。


   敢情我和他打了半天仗,倒给别人造成一种OwnWaterloo能和我相提并论的错觉? 他能及的我知识水平的一个零头么???

   我真是没脸混CU了。

论坛徽章:
0
90 [报告]
发表于 2011-10-21 11:15 |只看该作者
回复 89# 塑料袋


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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP