c++ - 哪些 C 功能受 C++ 功能影响/源自 C++ 功能?

标签 c++ c language-lawyer standards language-features

实际 C 标准中的哪些功能最初不是 C 的一部分,而是在 C++ 中发明/为 C++ 发明的,并且由于其优点,后来被 C 采用?

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

您是否了解实际 C 标准的更多功能,这些功能显式或隐式地来自 C++ 的开发?

信息: 当然,我知道C++是从C派生的,但我只是在想它的派生C++的开发中采用了哪些功能。

最佳答案

我无法确认它们肯定直接受到 C++ 的影响1,但以下是 C99 中添加的标准 C++ 功能的列表:

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

C11:

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

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

关于c++ - 哪些 C 功能受 C++ 功能影响/源自 C++ 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59396256/

相关文章:

c++ - 添加 <iostream> 会破坏 g++-7 中的代码

c - 我找到阶乘的 C 程序没有给我想要的结果

c - stdatomic.h 的名称是否与将映射到句点前的八个有效字符的(潜在)限制相矛盾?

c++ - 如果 constexpr 格式正确,这是在内部使用 static_assert 吗?

c++ - `std::count_if` 的二进制谓词不起作用

c++ - 重载模板解析

c++ - 库达 CMake : undefined reference

c++ - 是否可以访问物理地址0?

c - 将内容从一个文件放到另一个文件中不起作用

javascript - getOwnPropertyNames 在 Firefox 上忽略 __proto__