C++程序是如何工作的

How do C++ programs work?

本文关键字:工作 何工作 程序 C++      更新时间:2023-10-16

为了让我的问题更清楚,我想提到这个问题的原因:-

  1. 我想知道我的节目是否会取决于操作系统。例如,我想C++与操作系统无关;现在我知道了如果我用Visual C++编程程序将依赖于Windows。所以,我想知道如何制作确保我的程序不依赖于操作系统。

  2. 我想知道怎么回事一般来说工作舒适编程时。(知道有帮助如果包含头文件。)

  3. 也许我可以优化我的程序只知道事情如何工作,无需看书关于优化和消耗时间优化而不是发展

我知道有一些关于编译器如何工作的书。但我对此不感兴趣,我只感兴趣的是了解程序要经过哪些阶段才能获得一个完全有效的程序,原因我之前提到过。可能存在核心阶段和可选/IDE相关阶段;如果这是真的,我想知道两者。

编辑:非常感谢你的回答。我得到了我想知道的,但我会打开另外两个问题,以获得更具体的信息。

C++,包括其标准库,是独立于平台的。如果您用纯C++编写代码,那么代码将是可移植的。

然而,C++标准库并不像Java或Python标准库那样大。因此,要编写真正的应用程序,通常需要各种第三方库。这些可能独立于平台,也可能不独立于平台。Boost和Qt是一个很好的独立于平台的第三方库,可以满足您的许多需求。

C++,该语言独立于操作系统和体系结构。但是,编译后的可执行文件依赖于操作系统。如果你不使用Visual C++特定的功能或任何与之相关的"语法错误",我相信你的程序在其他平台上编译后就可以运行。

至于你的问题C++是如何工作的,我想知道你是否知道任何体系结构的汇编语言。从C++到汇编的转换对人类来说非常简单(当然是未优化的),这就是C++程序的工作方式:它们成为机器可以直接运行的指令。但实际上,编译器经常会针对寄存器使用、缓存使用、分支预测等对代码进行优化。

如果你依赖于这种级别的优化,你不会更快地获得代码。设计更好的算法才是你真正应该做的。

  1. C++是一个标准,因此它与技术无关。一旦你开始使用库,事情就会变得复杂起来,因为并不是所有的库都可以在任何地方使用。依赖语言扩展和非标准行为也是如此。

  2. 太复杂了,无法用当前形式回答。你到底想知道什么?创建一个单独的问题不是更好吗?

  3. 优化比你想象的更难。可以说,算法优化产生了最好的结果——如果你选择了一个愚蠢的算法,无论你怎么尝试,你的语言技能都不会帮助你。

C++是独立于操作系统的,但你必须为你计划使用它的每个系统编译它。然而,也有一些库和东西依赖于操作系统,例如Winapi依赖于Windows。

查看标准库,例如cplusplus或Boost。这里有独立于操作系统的代码。