0195可以当作八进制数?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

0195可以当作八进制数?

a123456678 2016-06-03 18:16:48 1192

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

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

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

编译器
分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:27:00

    那本书是很多很多很多年以前写的,开始写的时候甚至C标准(c89)都还没制定完(86年的素材,88年出版),所以这里的情况很可能指的是当时的一些编译器(你可以试试TurboC 2.0)。现在主流的C编译器都可以正确给出提示(WARNING/ERROR),所以不用太关注这个问题。

    0 0

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题