开发者社区> 问答> 正文

0195可以当作八进制数?

在看《C陷阱与缺陷》一书中,其中1.4整型常量一节中有这么一段话:

此外,许多编译器会把8和9也作为八进制数字处理,这样多少有点奇怪的处理方式来自八进制数的定义。例如0195的含义是141(十进制)或者0215(八进制)。
我看了下八进制数的wiki, 没有发现定义中说0195也可以当八进制数。 难道八进制数定义另有隐情?

另外,能不能指出个能把常量0195识别为141的编译器?

展开
收起
a123456678 2016-06-03 18:16:48 2842 0
1 条回答
写回答
取消 提交回答
  • 那本书是很多很多很多年以前写的,开始写的时候甚至C标准(c89)都还没制定完(86年的素材,88年出版),所以这里的情况很可能指的是当时的一些编译器(你可以试试TurboC 2.0)。现在主流的C编译器都可以正确给出提示(WARNING/ERROR),所以不用太关注这个问题。

    2019-07-17 19:27:00
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载