首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >K&R C处理八进制

K&R C处理八进制
EN

Stack Overflow用户
提问于 2013-11-11 07:53:26
回答 2查看 215关注 0票数 3

首先,我读了以下文章:http://www.hpc.unimelb.edu.au/nec/g1af02e/chap1.html,它告诉我如下:

K&R C和SUPER&R C数字8和9是允许的.它们被认为是十进制整数常量。

我有点困惑..。寻找更多..。发现这个:http://docs.oracle.com/cd/E19205-01/819-5265/bjbfb/index.html

它告诉我:

接受八进制转义序列中的8或9。

但是,根据:http://en.wikipedia.org/wiki/Octal

八进制数字系统,简称oct,是基数-8的数字系统,使用数字0到7。

现在我真的很困惑。我从来没有机会真正使用K&R C编译器.所以为什么K&R C接受8和9作为八进制数字..。这是怎么处理的?它们在“真实”八进制系统中的价值是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-11 08:14:07

K&R C并不是很严格,所以ANSI-C (和更新的)编译器所不允许的很多事情都是不允许的。

“八进制”数字0193将相当于1*8^2 + 9*8^1 + 3。可憎的东西?是。

票数 6
EN

Stack Overflow用户

发布于 2013-11-11 08:13:02

在现代C中,自1989年ANSI C标准以来,八进制数字仅为0到7(对于字符和字符串文本以及整数常量中的八进制转义)。

K&R C是1978年第一版Kernighan和Ritchie的“C编程语言”所描述的(基本上过时的)语言,允许8和9的八进制数,其明显值分别为8和9。

例如,在现代C中,常量019是语法错误,但在K&R C中它的值为17。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19901347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档