为何很多语言依赖C/C++实现图形图像显示?

C++

1个回答

写回答

17713599512

2026-01-12 00:11

+ 关注

Java
Java

简单来讲,基本上所有的编程语言,这里说的是全部而不只是C,其核心内容为程序流控制、计算、数据结构,而这些部分都不涉及IO(输入输出)。

也就是说,几乎所有编程,其语言核心大多仅有最简单的字符输出能力。

不过,新一些的语言通常在标准库中有图形支持。像JavaScript这种浏览器集成语言,很容易就能输出图片、控制布局。但对于不绑定浏览器且有跨平台需求的语言来说,这事没那么容易。这是由于图形/图像输出需与当前软硬件平台的显示原理相绑定。明白这点后,接下来的事就顺理成章了。

C++
C++

正是有这样的能力以及相关训练,在外行或初学者看来,C只能在黑窗口输出字符,简陋得可笑。但实际上,如今几乎所有语言都要依靠C/C++的协助,才能够显示图形图像、动画视频。例如,Python所依赖的pyQt、pyGTK,实际上就是Qt和GTK这两个跨平台的GUI支持库,其中Qt由C++编写,GTK由C编写。同样,unreal、unity之类的游戏引擎,核心代码也是源于c/C++linux的x - Windows、Wayland等图形基础支持均由C编写;Windows的图形子系统、DirectX等则来源于C++。甚至在其他领域,像网络通讯中最底层的tcp/ip协议栈、socket,再到中层的libevent,也都是用c/C++编写的。再举例来说,如今大家都清楚在AI时代Python成为了基础平台,各类AI都依托Python并基于Pytorch等AI库运行。然而,这些库实际上无法用Python编写,因为速度太慢。它们实际上是在C/C++编写的CUDA之上的一层封装,甚至这层封装的很多代码依旧只能用C/C++编写。再扯远一点,绝大多数硬件驱动是用c/C++编写的。但是,你也看到了,这个东西专业性太强,门槛也非常高,甚至很多相关专业的学生都没机会接触。于是在他们看来,C/C++特别落后,早就该被淘汰,只是有些守旧的人还一直坚持使用,他们觉得这种垃圾语言只能在黑窗口运行……但他们不清楚,要是没有c/C++,绝大多数其他语言连在黑窗口下运行都无法实现,难道黑窗口是凭空出现的吗?

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号