免费注册 查看新帖 |

Chinaunix

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

C深度剖析 [复制链接]

论坛徽章:
0
161 [报告]
发表于 2012-06-21 16:46 |只看该作者
kzl0629 发表于 2012-06-21 16:43
回复 160# 幻の上帝
有什么关系吗??
register 变量必须是 能被CPU 寄存器所接受的类型。


C标准根本没有这种限制
如果编译器限制
说明编译器是非标准的

现在我就说:“说明编译器是非标准的” 说错了  有问题吗??

我怀疑你是认为 register 变量就必须如其字面意义 存储在 register 里。
要是怀疑错了,当我没说
要是中枪,问你一句:都存储在 register 里还有毛“优化程度”之说?

论坛徽章:
0
162 [报告]
发表于 2012-06-21 16:46 |只看该作者
回复 166# pmerofc


    原文对错我无法考证指表明了一下态度,我的目的不是说原文的对错,而是说你的“说明编译器是非标准的 ”这句话错了,没错的话请你解释一下,当然你也可以不解释

论坛徽章:
0
163 [报告]
发表于 2012-06-21 16:50 |只看该作者
回复 169# 幻の上帝


        一种 Implementation-defined的情况,C标准没有明确规定char是有符号的还是无符号的,但是要求编译器必须对此做出明确规定,并写在编译器的文档中。

      同样是对register关键字的定义,编译有限制有问题吗???违反标准了吗??

      

论坛徽章:
0
164 [报告]
发表于 2012-06-21 16:51 |只看该作者
回复 170# hbmhalley


    标准没说非得放在寄存器里,至是说让存取变量更快

论坛徽章:
0
165 [报告]
发表于 2012-06-21 16:51 |只看该作者
回复 171# kzl0629

判断是不是符合标准的根本依据是ISO C Clause 4。你自己看一下算了。

论坛徽章:
0
166 [报告]
发表于 2012-06-21 16:51 |只看该作者
回复 147# kzl0629


    我也觉得你大概说的没错。
说话说一半和有能力把话讲透都没什么问题,
但是自信满满地口胡让人不吐槽不舒服。

这标准是你临时翻出来的么,
没人吐槽你两句是不是以后还会认为说register是c的扩展功能?
这段抽象点的话你有几分把握来联系实际解释并证明自己?
由实现定义又是你看到implement给译过来的?

没能力说清楚你可以再小心点,别到头来怪别人咬文嚼字。

论坛徽章:
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
167 [报告]
发表于 2012-06-21 16:52 |只看该作者
幻の上帝 发表于 2012-06-21 16:15
回复 145# zylthinking

玩OJ时期的代码都到处乱扔,一时找不到什么了……


先看看1234567890

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

论坛徽章:
0
169 [报告]
发表于 2012-06-21 16:54 |只看该作者
回复 177# pmerofc


打岔:话说围棋的“目”的出处是啥……

论坛徽章:
0
170 [报告]
发表于 2012-06-21 16:55 |只看该作者
kzl0629 发表于 2012-06-21 16:46
标准没说非得放在寄存器里,至是说让存取变量更快

真是服了你了,你意在反驳,举的论据却都是我要说的
我就当你没有此楼,接着说:

register 变量必须是 能被CPU 寄存器所接受的类型。

显然作者的意思是 (1)不允许不能被CPU 寄存器所接受的类型之前加 register
而非 (2)register 变量必须放在寄存器里

显然(2)也不靠谱的没边
但按你的话说,“implementation-defined”,限制了也算他没错

-- 但,(1) 你怎么解释?标准并未允许编译器限制“只有哪些变量前可以加 register”,因此lz说法有误,pm挑刺无误。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP