免费注册 查看新帖 |

Chinaunix

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

C深度剖析 [复制链接]

论坛徽章:
0
131 [报告]
发表于 2012-06-21 16:00 |只看该作者
kzl0629 发表于 2012-06-21 15:16
回复 96# hbmhalley
   出去吃了个饭
   好吧,满足你一次,希望你以后不要再被pm这种只会侃侃而谈,但谈的都是屁的人而迷惑。


这是他5楼的回复。
register 变量必须是 能被CPU 寄存器所接受的类型。


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

这是c99标准:
declaration of an identifier for an object with storage-class specifier register
suggests that access to the object be as fast as possible. The extent to which such
suggestions are effective is implementation-defined.

你可以找你的pm大牛解释一下什么意思。

说他错的原因是,实现regster扩展功能是由实现定义的,不能说编译器没遵从标准


“实现regster扩展功能是由实现定义的” .. 给google他也不敢这么翻译啊
而且,单看你语气,你这是在反驳么?我为啥怎么看怎么觉得你是在表达“这是实现定义的,编译器这么做不违反标准”而非“标准里有这个限制”??难道因为我语文渣??

论坛徽章:
0
132 [报告]
发表于 2012-06-21 16:00 |只看该作者
本帖最后由 sacry 于 2012-06-21 16:01 编辑

回复 137# kzl0629


瞎标了,别在意。

不过这里的extent,应该是程度,范围。而不是扩展。

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


    “这是实现定义的,编译器这么做不违反标准"
    我这是这个意思,而pm说编译器对register有限制是非标准的,这句话就是错误的
   你自己认为你语文是不是个渣??

论坛徽章:
0
134 [报告]
发表于 2012-06-21 16:05 |只看该作者
回复 140# sacry


    “程度”,这么理解可能更准确一点,不知道你理解我的意思没

论坛徽章:
0
135 [报告]
发表于 2012-06-21 16:07 |只看该作者
回复 134# zylthinking

不用那么麻烦。
想像我以前曾经写过一堆xxx(++i, i++)的东西就行了。
   

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

我不是很需要理解你什么意思。

PM喷register的限制我觉得没喷错,
这是在讲C语言而不是在讲编译器。

喷的内容的确有点问题,但那个我也不关心。
知道的会知道,怎么做是立场问题。

我只是看到你贴了一段标准,然后说register扩展功能,觉得很好笑。
   

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

不用那么麻烦。


咋这么吝啬呢, 让我也沐浴一下太阳的光辉呗

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

padding不是必要的,这正好又说明你一口咬定的有问题。
关键是即便不考虑padding bit,可以选择的有符号数表示是原码、反码、补码之一,value bits应该使用纯二进制数表示(有符号数和无符号数对应,所以我才把前一段也贴出来了),没法BCD,这点是明确的。

论坛徽章:
0
139 [报告]
发表于 2012-06-21 16:14 |只看该作者
回复 144# sacry


    我大概能看懂,表达出来就不是味了

   他说对register关键字的一些限制是违反了c标准的,

   而标准上说register的功能的大概意思(不要咬文嚼字,理解意思,觉得我翻译不好的,自己去看原文):对register关键字声明的变量存取起来要尽可能的快,至于其他的功能(程度更深一些的功能)由实现定义。所以编译器只让register声明的变量存取快就可以了,就是符合标准的,至于其他的限制编译器可以自己加的都不算违反标准

论坛徽章:
0
140 [报告]
发表于 2012-06-21 16:15 |只看该作者
回复 145# zylthinking

玩OJ时期的代码都到处乱扔,一时找不到什么了……
现在拿得出手的非玩具代码也几乎没有……
这个勉强算是吧……code.google.com/p/yslib
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP