C++程序是如何工作的
How do C++ programs work?
为了让我的问题更清楚,我想提到这个问题的原因:-
-
我想知道我的节目是否会取决于操作系统。例如,我想C++与操作系统无关;现在我知道了如果我用Visual C++编程程序将依赖于Windows。所以,我想知道如何制作确保我的程序不依赖于操作系统。
-
我想知道怎么回事一般来说工作舒适编程时。(知道有帮助如果包含头文件。)
-
也许我可以优化我的程序只知道事情如何工作,无需看书关于优化和消耗时间优化而不是发展
我知道有一些关于编译器如何工作的书。但我对此不感兴趣,我只感兴趣的是了解程序要经过哪些阶段才能获得一个完全有效的程序,原因我之前提到过。可能存在核心阶段和可选/IDE相关阶段;如果这是真的,我想知道两者。
编辑:非常感谢你的回答。我得到了我想知道的,但我会打开另外两个问题,以获得更具体的信息。
C++,包括其标准库,是独立于平台的。如果您用纯C++编写代码,那么代码将是可移植的。
然而,C++标准库并不像Java或Python标准库那样大。因此,要编写真正的应用程序,通常需要各种第三方库。这些可能独立于平台,也可能不独立于平台。Boost和Qt是一个很好的独立于平台的第三方库,可以满足您的许多需求。
C++,该语言独立于操作系统和体系结构。但是,编译后的可执行文件依赖于操作系统。如果你不使用Visual C++特定的功能或任何与之相关的"语法错误",我相信你的程序在其他平台上编译后就可以运行。
至于你的问题C++是如何工作的,我想知道你是否知道任何体系结构的汇编语言。从C++到汇编的转换对人类来说非常简单(当然是未优化的),这就是C++程序的工作方式:它们成为机器可以直接运行的指令。但实际上,编译器经常会针对寄存器使用、缓存使用、分支预测等对代码进行优化。
如果你依赖于这种级别的优化,你不会更快地获得代码。设计更好的算法才是你真正应该做的。
-
C++是一个标准,因此它与技术无关。一旦你开始使用库,事情就会变得复杂起来,因为并不是所有的库都可以在任何地方使用。依赖语言扩展和非标准行为也是如此。
-
太复杂了,无法用当前形式回答。你到底想知道什么?创建一个单独的问题不是更好吗?
-
优化比你想象的更难。可以说,算法优化产生了最好的结果——如果你选择了一个愚蠢的算法,无论你怎么尝试,你的语言技能都不会帮助你。
C++是独立于操作系统的,但你必须为你计划使用它的每个系统编译它。然而,也有一些库和东西依赖于操作系统,例如Winapi依赖于Windows。
查看标准库,例如cplusplus或Boost。这里有独立于操作系统的代码。
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 当 int 方法工作正常时,void 方法有何不同,或者为什么我不能调用 void 方法?
- sdl软件渲染器不工作,工作在硬件加速的一个