纯 C vs 内核 C vs 经典 C

Pure C vs Kernel C vs classic C

我是大学生的最后一年,我发现自己处于一种令人困惑的境地,尽管我从概念上理解它们之间存在一些细微差别,比如在经典 C 中,函数没有原型,谢天谢地不再使用,我无法确定这三者之间的那些精确区别。
我想要一些正式的定义,最好注明书面论文来源,如果有的话:

用于识别(微小但具体的)差异等的任何其他信息或指南。如果没有(或几乎没有)明显的差异,我将非常感谢给出这样的定义。

:
我不是在问 C++,因为缺少更好的词、超集或任何其他 C 相关语言,它继承了一些语法或格式.
我既不是在谈论 ANSI C99/C1X 标准,如 way/style 编写代码,也不是指其他库。更具体的,举个例子,C11允许anonymousstructuresunions,这是一个feature,它涉及这个问题。 我的重点只是语言 本身及其特性 ,而不是试图讨论库或编译器。
如果 GNU/POSIX/ANSI/etc 现在被认为包括我们所说的 C,那么术语不应该是 GNU 语言吗?
只是为了澄清这一点,这个问题并不是要写语言的历史。

C语言被ISO标准化。现在发布为 ISO 9899。该标准会不时更新,因此存在不同版本的标准。最值得注意的是 ISO 9899:1990ISO 9899:1999ISO 9899:2011,通常称为 C89/C90、C99 和 C11。

在被 ISO 采纳之前,该语言主要由原作者定义,通常称为 K&R C。

编辑: 由于 OP 澄清它与语言的历史或标准化无关,我可以补充说 Linux 内核目前使用 GNU89 作为语言基础(当 GCC 在 5.0 版本中将默认值更改为 GNU11 时明确表示)。