哪些 C 特性受 C++ 特性影响/派生自 C++ 特性?

Rob*_*rtS 8 c c++ standards language-features language-lawyer

实际的 C 标准有哪些特性,这些特性最初不是 C 的一部分,而是在 C++ 中/为 C++ 发明的,并且由于它的好处,后来被 C 采用?

一个突出的例子是单行注释//,它最初来自 C++,后来被 C 所采用。

您是否知道实际 C 标准的更多特性,这些特性显式或隐式来自 C++ 的开发?

信息:当然,我知道 C++ 是从 C 派生的,但我只是在考虑从其派生 C++ 的开发中采用了哪些特性。

eer*_*ika 4

我无法确认它们肯定直接受到 C++ 的影响1,但这里列出了 C99 中添加的标准 C++ 功能:

  • 单行注释(如上所述)
  • 内联函数
  • 块开始后允许的变量
  • 布尔数据类型
  • 复杂的数学库

C11:

  • 匿名联合(C11 也允许匿名结构)。标准 C++ 中已经存在匿名联合。(标准 C++ 中仍然不允许匿名结构)。

1例如,BCPL(B 的前身,B 的前身,而 C 的前身)已经具有相同的单行注释语法。其中一些在合并到标准 C++ 之前可能已在某些 C 实现中作为语言扩展得到支持。在这些情况下,标准 C 和标准 C++ 可能都受到同一来源的影响,而不是相互影响。