c++ - 为什么驱动程序和固件几乎总是用 C 或 ASM 而不是 C++ 编写?

标签 c++ c

我只是好奇为什么驱动程序和固件几乎总是用 C 或汇编编写,而不是 C++?

我听说这是有技术原因的。

有人知道吗?

很多爱, 路易丝

最佳答案

因为在大多数情况下,操作系统(或“运行时库”)提供了 C++ 所需的标准库功能。

在 C 和 ASM 中,您可以创建不包含外部依赖项的裸可执行文件。

但是,由于 Windows 确实支持 C++ 标准库,因此大多数 Windows 驱动程序都是用 C++(有限的子集)编写的。

此外,在编写 ASM 固件时,通常是因为 (A) 执行它的平台没有 C++ 编译器,或者 (B) 存在极端的速度或大小限制。

请注意,自 2000 年代初以来,(B)通常不是问题。

关于c++ - 为什么驱动程序和固件几乎总是用 C 或 ASM 而不是 C++ 编写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2039444/

相关文章:

Java 传值和类对象的 C++ 指针调用效果一样吗?

c++ - 可变参数模板的可扩展性

c++ - Linux 中的 COM 端口检测

在GDB中将十六进制IP地址转换为点分十进制

C++指针的合适对齐方式

c++ - 使用 OpenGL,如何在默认投影中正确使用 gluOrtho2D?

c++ - 如何在数组中添加对象成员?

c - 用C从oracle数据库中获取时间戳数据

c++ - 关于编译器及其工作方式的问题

c - 如何消除我从给定代码中得到的段错误?