C与C++——C语言的优势
C vs C++ - advantages with c-language
与c相比,c++有几个优点,例如
- 数据在c语言中无法隐藏
- c是更低级的(这意味着更难理解和编码,这意味着更多的bug)
- c不允许函数重载
- c不支持异常处理
- 可以在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使您能够更好地控制代码执行时发生的情况。当读取查找时,很容易破译正在执行的一个代码,以及当内存刚刚重新启动或执行原始操作时。
C支持堆栈上的可变大小数组。这比在堆上分配要快得多。(C99功能)
没有名字篡改。如果您打算阅读生成的程序集代码,这会使阅读变得更加容易。当试图优化代码时,它可能很有用。事实上的标准应用程序二进制接口(ABI)。不同编译器生成的代码可以很容易地组合在一起。
更容易与其他语言交互。很多语言都允许您直接调用C函数。绑定到C++库通常是一项复杂得多的工作。
编译C程序比编译C++程序快,因为解析C比解析C++容易得多。
变量不能在C++中安全地使用。它们在C中也不完全安全。然而,它们在C++中更为常见,以至于在C++编码标准中被禁止(Sutter,Alexandrescu)。
C需要较少的运行时支持。使其更适合于嵌入式系统或操作系统组件等低级别环境。
C中进行封装的标准方法是前向声明结构,并且只允许通过函数访问其数据。此方法还创建编译时封装。编译时封装允许我们在不重新编译客户端代码(使用我们接口的其他代码)的情况下更改数据结构成员。另一方面,封装C++的标准方法(使用类)要求在添加或删除私有成员变量时重新编译客户端代码。
- 不同语言中相同代码的不同行为
- 为什么C++对链表中的下一个节点使用指针,而像 C# 或 Java 这样的语言只使用类 Node 的名称?
- r语言 - C++ 类型为"const std ::?
- 通用C++/Python 多语言的存在
- 为什么我的 EnumWindowProc 不能用 C 语言编译?
- 了解算法的性能差异(如果以不同的编程语言实现)
- Rextester 语言编译C++问题
- 如何将多种语言设置放在单个 .clang 格式文件中
- 不同语言中的模运算符差异
- 刚接触C++,难以理解语言的细微差别
- 为什么开发人员将C / C ++用于嵌入式系统,而不是像Python这样的高级语言与C相比?
- 我们可以用 C 语言嵌套 #define 和 #if 吗?
- 我的C++语言蛮力算法有问题
- 如何删除已输入的书以及如何使标题,语言和名称在上面放置空格不会出错?
- 为什么编程语言被编译为汇编程序而不是二进制?
- QDirIterator语言 - No hasNext not FilePath reaction
- "C.UTF-8" C++ Windows 上的语言环境?
- 了解 cin.fail() 和 cin.clear语言 - Vector 追加程序
- '_HAS_CXX17'宏是否可用于自定义项目标头以启用C++17 语言集功能?
- 有没有办法为macOS上的C++程序指定自定义语言环境目录