免费注册 查看新帖 |

Chinaunix

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

争论C概念正确性的一般路子是什么? [复制链接]

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
141 [报告]
发表于 2012-06-04 11:43 |只看该作者
本帖最后由 mirnshi 于 2012-06-04 11:43 编辑
starwing83 发表于 2012-06-04 11:28
回复 132# zylthinking

money是至少无上的。 这才是标准

论坛徽章:
0
142 [报告]
发表于 2012-06-04 11:56 |只看该作者
回复 140# mirnshi


    是的,他们也符合标准,但是换一个编译器就不一定支持了,所以叫做方言。

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
143 [报告]
发表于 2012-06-04 12:10 |只看该作者
mirnshi 发表于 2012-06-04 11:43
money是至少无上的。  这才是标准


我靠, 这才是坑, 绕来绕去绕成我他妈的只认钱了。。。。。我发觉sw的手段比解毒专家要高明, 虽然可能是歪打正着。
预期说什么高速公路, 不如举几个例子来演示一下到底什么是高危行为, 自然要从代码里面摘, 别自己编造。
这个是个体力活, 我说的容易, 要找就要化力气了, 所以也不限于 SW 上, 闲的蛋疼的一起上嘛。
我相信还是找的到的, 我就想看一个现实例子, 另外想看看各位找了多久来评估一下我的观点到底正确或错误到什么程度

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
144 [报告]
发表于 2012-06-04 12:34 |只看该作者
本帖最后由 starwing83 于 2012-06-04 12:35 编辑

回复 143# zylthinking


    http://c-faq-chn.sourceforge.net/ccfaq/node189.html

我这里有个例子,可能记得不太清楚了,我大致描述一下吧。

前公司有个Symbian 项目,手机游戏,客户端底层有个很薄的C++抽象层。一堆的头文件。我们用Lua写客户端脚本。可是有效率问题。其实主要是C/Lua边界效率很低。后来我打算用LuaJIT,但是编译的时候报错了,LuaJIT说只支持gcc4.4以上的版本。然后我就升级了编译器(真的很麻烦,你得下载兼容塞班的C++编译器,还得改一堆的环境变量),最后LuaJIT能编译了,可是以前的C++代码居然有好多地方都没法编译。直接报错了。因为当时他们写了一些不符合标准的代码(C++03对template和typenmae的使用有严格的规定),还有类里面随意用空语句(比如class A{public: void f() {};};这种),我也记不太清都是什么原因了,反正我改了一下午的编译错误,就是从gcc3.x到4.x啊啊啊啊……

这算是一个实际的例子吧。也许你说,我就是做手机游戏的,我只用塞班SDK,可是你永远预见不到也许有一天你会换掉SDK的默认编译器,只是为了一个更高效的Lua实现……这有什么办法呢?如果严格遵守C++03标准写代码,这就不是问题了……

哦,对了,塞班SDK自己的代码也要改很多。你自己百度一下就可以发现很多这种文章,说要改这一行那一行才能换编译器。这不就是不遵守标准造成的么……

论坛徽章:
0
145 [报告]
发表于 2012-06-04 13:27 |只看该作者
starwing83 发表于 2012-06-04 12:34
回复 143# zylthinking



intel有个icc,你的代码兼容icc了吗?
ibm有个high cc,你的代码兼容hcc了吗?
嵌入式的wind river有个diab cc,你的代码兼容dcc了吗?

所谓兼容这种事情基本上是扯淡。都是到时候再看的。

论坛徽章:
0
146 [报告]
发表于 2012-06-04 13:39 |只看该作者
starwing83 发表于 2012-06-04 12:34
回复 143# zylthinking

你有没有想过一个问题,如果什么都很规范地做的话,或许这个项目就失败了,因为太过纠结细节,会导致开发效率低下!本来1年能完成了,结果没完成,还很心烦。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11
147 [报告]
发表于 2012-06-04 13:40 |只看该作者
代码能直接兼容当然更好。不能兼容或者不知道能不能兼容,就需要条件编译了。

论坛徽章:
0
148 [报告]
发表于 2012-06-04 13:43 |只看该作者
cobras 发表于 2012-06-04 13:40
代码能直接兼容当然更好。不能兼容或者不知道能不能兼容,就需要条件编译了。



市面上也许有超过一百种c编译器,没需要的话就不必去理会它们。否则,会把项目变成mission impossible。

即使是gcc也有无数个版本,版本间有细微的差别。

你的项目只要在你当前的编译器上工作良好就ok了。

迁移问题、兼容问题,等需要的时候再考虑吧。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11
149 [报告]
发表于 2012-06-04 13:43 |只看该作者
aychxm 发表于 2012-06-04 13:39
你有没有想过一个问题,如果什么都很规范地做的话,或许这个项目就失败了,因为太过纠结细节,会导致开发 ...

赞一个。兼容需要有节制,否则会得不尝失。除非项目要求,否则不要盲目。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
150 [报告]
发表于 2012-06-04 13:45 |只看该作者
如果完全不照着标准来,最终的结果就不是“需要的时候再兼容”了,而是直接锁死在一个编译器一个版本上面了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP