首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C与C++ -c语言的优势

问C与C++ -c语言的优势
EN

Stack Overflow用户
提问于 2014-01-01 22:47:10
回答 1查看 15.6K关注 0票数 6

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

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

  • 数据不能隐藏在c语言中。
  • C级别更低(这意味着更难理解和编写代码,这意味着更多的bug)。
  • C不允许函数重载。
  • C不支持异常处理。
  • 您可以在C++中使用结构内部的函数,但不能在C中使用

这个列表可能会长得多--但我的问题是:与c++相比,c langauge有什么优势吗?有什么比使用c++更好的吗?C有c++所缺少的东西吗?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-01 22:50:43

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

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

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

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

  • 静态初始化在C中是安全的,但在C++中不安全,因为在C++中,静态初始化会导致代码运行,这取决于其他已静态初始化的变量。它还会导致清理代码在关机时运行,而您无法控制(析构函数)的顺序。
  • C使您更好地控制代码执行时发生的情况。当读取“查找”时,很容易破译一段正在执行的代码,当内存刚刚重新启动或执行原始操作时。
  • C支持堆栈上的可变大小数组。这比在堆上分配要快得多。(C99功能)
  • 没人叫马格林。如果您打算读取生成的程序集代码,这将使这更容易。当试图优化代码时,它可能很有用。事实上的标准应用程序二进制接口(ABI)。不同编译器生成的代码可以很容易地组合在一起。
  • 与其他语言的接口要容易得多。很多语言都允许您直接调用C函数。绑定到C++库通常是一项复杂得多的工作。
  • 编译C程序比编译C++程序更快,因为解析C比解析C++容易得多。
  • Varargs不能安全地在C++中使用。他们在C区也不完全安全。然而,它们在C++中的作用要大得多,以至于在C++编码标准中禁止它们(Sutter,Alexandrescu)。
  • C需要较少的运行时支持。使得它更适合于低级别环境,如嵌入式系统或操作系统组件。
  • C中进行封装的标准方法是转发、声明一个结构,并且只允许通过函数访问它的数据。此方法还创建编译时封装。编译时封装允许我们更改数据结构成员,而无需重新编译客户端代码(使用我们的接口的其他代码)。另一方面,封装C++的标准方法(使用类)需要在添加或删除私有成员变量时重新编译客户端代码。
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20874105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档