C vs C ++ – c语言的优势

顾名思义,C ++是C的超集。事实上,C ++可以运行大部分C代码而C不能运行C ++代码。

与c相比,c ++有几个优点 – 例如

  • 数据无法隐藏在c语言中
  • c更低级别(这意味着更难理解和编码 – 这意味着更多的错误)
  • c不允许函数重载
  • c不支持exception处理
  • 你可以在C ++中使用结构内部的函数,但不能在C中使用

这个列表肯定会长得多 – 但是我的问题就出现了:与c +​​+相比,c-langauge有什么优势吗? 有没有什么比用c ++更好的c? c有c ++缺少的东西吗?

我根本不知道这一点 – 但由于指令集较少,可能比c ++快一点? 低级语言可能需要处理器较少的指令。

简单来说,C和C ++是两种不同的语言。

顾名思义,C ++是C的超集

不,这不是真的。 C ++不是C的超集 。

与c ++相比,c语言有什么优势吗? 有没有什么比用c ++更好的c?

  • 静态初始化在C中是安全的,但在C ++中是不安全的,因为在C ++中,静态初始化可能导致代码运行,这取决于已静态初始化的其他变量。 它还可以导致清理代码在关闭时运行,您无法控制(析构函数)的序列。

  • C使您可以更好地控制代码执行时发生的情况。 当读取寻找时,解密一个代码正在执行以及当内存刚刚重启或执行基本操作时相当简单。

  • C支持堆栈上的可变大小的数组。 分配比堆上快得多。 (C99function)

  • 没有名字毁了。 如果您打算阅读生成的汇编代码,这会更容易。 在尝试优化代码时非常有用。 事实上的标准应用程序二进制接口(ABI)。 不同编译器生成的代码可以轻松组合。

  • 更容易与其他语言交互。 很多语言都可以直接调用C函数。 绑定到C ++库通常是一项更复杂的工作。

  • 编译C程序比编译C ++程序要快,因为解析C比解析C ++容易得多。

  • Varargs无法安全地在C ++中使用。 它们在C中也不完全安全。 然而,它们在C ++中更是如此,以至于它们在C ++编码标准中被禁止(Sutter,Alexandrescu)。

  • C需要较少的运行时支持。 使其更适合嵌入式系统或OS组件等低级环境。

  • C中执行封装的标准方法是转发声明结构,只允许通过函数访问其数据。 此方法还会创建编译时封装。 编译时封装允许我们更改数据结构成员而无需重新编译客户端代码(使用我们的接口的其他代码)。 另一方面,使用类进行封装C ++的标准方法需要在添加或删除私有成员变量时重新编译客户端代码。