免费注册 查看新帖 |

Chinaunix

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

一个诡异整型赋值问题  关闭 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-12-03 09:45 |只看该作者
原帖由 5毛党党员 于 2008-12-3 09:40 发表

。。。没试过写成 018什么样子,去试试

结果是 invalid digit "8" in octal constant
但是既不是error,也不是warning...

论坛徽章:
0
12 [报告]
发表于 2008-12-03 09:47 |只看该作者
很多时候错误并不是报告出来才存在,能不能发现它得看运气。不过这样的概率还是非常小的,因为八进制只有0~7有效,占了十进制的五分之四,那么假设每次每个人尝试的数字都随机,则通过编译器找出错误的概率就是 20%。由此可证:一定不能依赖编译器。

论坛徽章:
0
13 [报告]
发表于 2008-12-03 09:49 |只看该作者
原帖由 5毛党党员 于 2008-12-3 09:45 发表

结果是 invalid digit "8" in octal constant
但是既不是error,也不是warning...


估计是预处理器报的错。我用 MSC 12,直接告诉我说这是一个 error。

论坛徽章:
0
14 [报告]
发表于 2008-12-03 09:49 |只看该作者
原帖由 langue 于 2008-12-3 09:47 发表
很多时候错误并不是报告出来才存在,能不能发现它得看运气。不过这样的概率还是非常小的,因为八进制只有0~7有效,占了十进制的五分之四,那么假设每次每个人尝试的数字都随机,则通过编译器找出错误的概率就是 ...

谢谢了~~~明白了

论坛徽章:
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
15 [报告]
发表于 2008-12-03 11:44 |只看该作者
一直非常不解,为什么C/C++中不支持常用的  二进制,却用根本没用的 八进制 来捣乱
比如二位数,一般为了排版整齐,就写成了 { 00, 01, …… 07, 08, 09, 10, 11 }
再比如 \11, 谁会想到这个11是八进制

论坛徽章:
0
16 [报告]
发表于 2008-12-03 11:46 |只看该作者
原帖由 bruceteen 于 2008-12-3 11:44 发表
一直非常不解,为什么C/C++中不支持常用的  二进制,却用根本没用的 八进制 来捣乱
比如二位数,一般为了排版整齐,就写成了 { 00, 01, …… 07, 08, 09, 10, 11 }
再比如 \11, 谁会想到这个11是八进制


其实你可以用 tab 或者空格来代替 0

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
17 [报告]
发表于 2008-12-03 11:51 |只看该作者
原帖由 langue 于 2008-12-3 07:50 发表
你本将心向明月,奈何明月照沟渠。


  识别成八进制了

论坛徽章:
0
18 [报告]
发表于 2008-12-03 12:24 |只看该作者
排那么整齐有什么用

论坛徽章:
0
19 [报告]
发表于 2008-12-03 13:12 |只看该作者
再比如 \11, 谁会想到这个11是八进制

谁会想到写成\11?

论坛徽章:
0
20 [报告]
发表于 2008-12-03 13:19 |只看该作者
原帖由 bruceteen 于 2008-12-3 11:44 发表
一直非常不解,为什么C/C++中不支持常用的  二进制,却用根本没用的 八进制 来捣乱
比如二位数,一般为了排版整齐,就写成了 { 00, 01, …… 07, 08, 09, 10, 11 }
再比如 \11, 谁会想到这个11是八进制

0101010011b
看多了会晕的
================
记错了,这不是C的。不过看多了真的会晕

[ 本帖最后由 战雨灾 于 2008-12-3 13:22 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP