【发布时间】:2016-04-26 07:30:34
【问题描述】:
我是大学生的最后一年,我发现自己处于令人困惑的境地,尽管我从概念上理解它们之间存在一些细微差别,就像在经典 C 中函数没有原型一样,谢天谢地不再使用,我无法确定这三者之间的精确区别。
我想要一些正式的定义,最好注明书面的论文来源,如果有的话:
- Pure C:这是什么意思,因为我已经看到它被广泛使用,或者什么时候应该使用它而不被误解
- 内核 C:如果内核 C 和纯 C 在语言特性方面方面存在任何差异。
- classic C:这里我指的是K&R C,除了legacy支持还有什么实际用途吗?它对教学目的有用吗?
用于识别(微小但具体的)差异等的任何其他信息或指南。如果没有(或几乎没有)显着差异,我将非常感谢提供这样的定义。
注意:
我问的不是 C++,因为缺少更好的词、超集或任何其他继承某些语法或格式的 C 相关语言。
我不是在谈论 ANSI C99/C1X 标准,就像编写代码的方式/风格一样,我也不是指其他库。更具体地说,例如,C11 允许 匿名 structures 和 unions,这是一个与问题有关的功能。
我只关注语言本身及其特性,而不是试图讨论库或编译器。
如果现在认为 GNU/POSIX/ANSI/etc 包含我们所说的 C,那么术语不应该是 GNU 语言吗?
只是为了澄清这一点,这个问题并不是要记录语言的历史。
【问题讨论】:
-
您必须解释这些术语的含义,它们不是标准术语。
-
“经典C”是指"K&R C吗? “纯C”是指the ISO/IEC standardized C (also known as ANSI C)? “内核 C”是什么意思?
-
“某种列表,或识别(微小但具体的)差异的指南” 下载 C11 标准草案,阅读第 13 页。涵盖了自第一个标准以来的所有更改。在 C90 之前允许的内容现在不应该引起太大的兴趣。
-
@RastaJedi 内核确实遵守一些规则,但内核 C 没有任何标准 POSIX 库,它有一个特殊的指令/库超集。如果我弄错了,请纠正我。
-
当我看到人们说“纯C”时,那是因为他们的意思是“C”,但他们认为“C”本身就是“C/C++”的缩写
标签: c standards definition