哪些 C 特征受C++特征的影响/派生自特征?
Which C Features are influenced by/derived from C++ Features?
实际的C标准中有哪些功能,这些功能最初不是C的一部分,但是在C++中发明的,并且由于其优点,后来被C采用?
一个突出的例子是单行注释//
,它最初来自C++,后来被C采用。
你知道实际的C标准的更多功能吗,它明确或隐含地来自C++的发展?
信息: 当然,我知道C++是从 C 派生的,但我只是在考虑从它的导数 C++ 的开发中采用了哪些功能。
我无法确认它们是否肯定受到直接C++ 1的影响,但以下是 C99 中添加的标准C++中的功能列表:
- 单行注释(如前所述(
- 内联函数
- 块开始后允许的变量
- 布尔数据类型
- 复杂数学库
C11:
匿名- 联合(C11也允许匿名结构(。匿名工会已经进入标准C++。(标准C++中仍然不允许匿名结构(。
1例如 BCPL,B 的前身又是 C 的前身,单行注释的语法已经相同。其中一些在合并到标准C++之前可能已作为语言扩展在某些 C 实现中得到支持。在这些情况下,标准C和标准C++可能受到同一来源的影响,而不是相互影响。
属性是在 C++11 中添加的,并将在下一个 C 标准修订版 C2x 中添加。此功能的建议(和此处(特别引用了C++。
属性可用于提供信息,例如,帮助编译器发出更好的诊断或优化生成的代码。源
例:
int [[attr1]] i [[attr2, attr3]];
[[attr4(arg1, arg2)]] if (cond)
{
[[vendor::attr5]] return i;
}
在此示例中,">属性 attr1 适用于变量 i 的类型,attr2 和 attr3 适用于变量本身,attr4 适用于 if 语句,vendor::attr5 适用于返回语句。源
相关文章:
- 为什么使用 "this" 指针调用派生成员函数?
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 在派生函数中指定void*参数
- 如何通过派生类函数更改基类中的向量
- 如何委托派生类使用其父构造函数?
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 如何使用单独文件中的派生类访问友元函数对象
- 派生类销毁的最佳实践是什么
- 如何使用基类指针引用派生类成员
- 派生类是否可以在抽象工厂设计模式中具有数据成员
- 使用基类指针创建对象时,缺少派生类析构函数
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- 如何引用基类的派生类?
- 存储模板类型以强制转换回派生<T>
- 需要从 istream 和 ostream 派生 iostream
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 哪些 C 特征受C++特征的影响/派生自特征?
- 使派生类遵循特征
- 类型特征检查 CRTP 派生,在基类中,问题是未定义的类型
- 给定一个基类作为参数,如果传递了一个派生类的特征,如何使用 op<< 重载来打印派生类的特征?