C、C++、C#的区别概述

C、C++、C#的区别概述

https://link.zhihu.com/?target=https%3A//csharp-station.com/understanding-the-differences-between-c-c-and-c/文章翻译源于此链接

01、C语言

​ Dennis Ritchie在1972年创造了C语言 并在1978年公布。Ritchie设计C的初衷是用于开发新版本的Unix 。在那之前,Unix使用的是汇编语言 (assembly language),它是计算机可读取的最低级 的编程。C语言的诞生彻底改变(revolutionize)了编程和操作系统。其余的,正如他们所说,是一段历史了。

  • C也是一门低级的编程语言,它的效率和汇编接近
  • 它提供了基本级 (base-level)的访问内存方式,对运行时支持的要求非常小。
  • 由于C的年龄原因,使用C可能带来一些安全性的提升(用户少、黑客攻击可能性小)

开发人员仍然使用它在操作系统、内核级软件开发、硬件驱动和需要与旧代码一同工作的应用程序上。(看TIOBE就知道了,2019年12月排名第二,仅次于Java)

02、C++

C++可以说是C的扩展版本,它是由丹麦的哲学博士(Ph.D.)Bjarne Stroustrup开发的。他的目标是增强C语言 并在不牺牲速度和效率 的前提下为其增加面向对象(object-oriented)的能力。

  • C++被认为是一种中级的语言,因为它基于低级的C语言所创建并拥有一些高级的能力
  • 同时C++成为了另一个高产的编程语言。在开发操作系统时它会和C一同协作,在一些高端服务器和PC软件上也有应用
  • C++ 可以编写跨平台的程序,并且在许多领域,如游戏开发、系统编程等方面有广泛应用(比如大家熟知的王者荣耀就用到了C++)

03、C#

​ C#是一门高级面向对象的编程语言,同样也是作为C的扩展所创建的。它是在2002年,由微软的一个团队的领头人Anders Hejlsberg开发的。它是基于**.NET框架**的,但是它的核心依然是C语言。

  • C#将代码编译成字节码 (byte-code)而不是机器码(0101的二进制)。
  • 它会在一台虚拟计算机 上运行,这台虚拟机实时(on the fly)将字节码翻译成机器码
  • 在C语言的基础上添加了垃圾回收 (garbage collection)、未初始化的变量检查 (uninitialized variable checking)、边界检查 (bound checking)和类型检查(type checking)这些特性。

​ 讲到这里,C#有一些特性跟Java相像,以及JVM原理等等

C#常见于内部或者企业应用而不是商业软件。可以在.NET框架中的客户端和服务器端开发中找到。

区别总结

C、C++ 和 C# 是三种不同的编程语言,它们在设计目标特性应用领域上有很大的区别。以下是它们的比较:

  1. 编程范式:
    • C: C 是一门过程式 编程语言,主要关注过程和函数的编写。
    • C++: C++ 是一门多范式编程 语言,支持过程式编程面向对象编程。它引入了类和对象的概念,允许使用封装、继承和多态等面向对象的特性。
    • C#: C# 是一门多范式编程语言,主要面向对象 ,同时也支持过程式和泛型编程。它设计用于与.NET框架交互 ,支持面向组件编程
  2. 内存管理:
    • C: 在 C 中,开发者需要手动管理内存,包括分配和释放内存。
    • C++: C++ 提供了自动内存管理的功能,但仍然允许使用手动管理内存的方式。它引入了构造函数和析构函数来管理对象的生命周期。
    • C#: C# 运行在.NET框架上,具有垃圾回收机制自动管理内存。开发者无需手动分配或释放内存。
  3. 平台兼容性:
    • C: C 的代码通常具有较好的平台兼容性,可以在多个操作系统上编译和运行
    • C++: C++ 的代码也具有一定的平台兼容性,但在涉及图形用户界面 (GUI) 等方面可能需要特定的调整。
    • C#: C# 主要与.NET框架密切相关,因此在 Windows 环境中更为常见。虽然通过Mono和.NET Core可以实现在其他平台上的运行,但主要还是以Windows 为主
  4. 编译与执行方式:
    • C: C 代码通常被编译成机器码 ,直接在硬件上执行。
    • C++: C++ 代码也被编译成机器码,但引入了面向对象的概念,允许生成类和对象的相关结构。
    • C#: C# 代码被编译成中间语言 (IL),然后在.NET运行时环境中执行。这种方式允许跨平台运行,并在运行时进行一些优化。
  5. 应用领域:
    • C: C 通常用于系统级编程、嵌入式系统和对性能要求较高的应用程序。
    • C++: C++广泛应用于游戏开发、图形界面应用程序、系统开发以及需要高性能的应用领域。
    • C#: C# 常用于Windows桌面应用程序、Web应用程序、移动应用程序以及与.NET平台集成的企业级应用。

总体而言,选择使用哪种语言取决于项目的需求、开发者的经验以及应用程序的特性。 C 适用于底层开发,C++ 提供了更多的抽象和面向对象的特性,而 C# 则适用于.NET平台上的高级应用开发。

相关推荐
大白话_NOI2 分钟前
【洛谷 P1303】A*B Problem + 详细分析
c++
十月的皮皮7 分钟前
C语言学习笔记202606008- 三角形判断(3种方法)
c语言·笔记·学习
小欣加油8 分钟前
leetcode2161 根据给定数字划分数组
数据结构·c++·算法·leetcode·职场和发展
吃着火锅x唱着歌22 分钟前
深度探索C++对象模型 学习笔记 第五章 构造、解构、拷贝语意学(2)
c++·笔记·学习
玖釉-25 分钟前
Vulkan 离屏渲染详解:从 Framebuffer 到后处理、阴影贴图与 Render Texture
c++·windows·计算机视觉·图形渲染
cpp_250136 分钟前
P2947 [USACO09MAR] Look Up S
数据结构·c++·算法·题解·单调栈·洛谷
楼田莉子42 分钟前
C++20新特性:协程
开发语言·c++·后端·学习·c++20
xiaoshuaishuai844 分钟前
C# AvaloniaUI 中旋转
开发语言·c#
weixin_428005301 小时前
C#调用 AI学习从0开始-第2阶段(Function Calling+工具调用智能体)-第9天实战-实现计算器工具
开发语言·学习·c#·functioncalling·ai实现计算器工具
炘爚1 小时前
phase1:基础框架——编译 + MySQL + 登录/注册
linux·c++