C ++程序如何工作?

时间:2011-06-15 13:01:52

标签: c++

为了使我的问题更清楚,我想提一下问题的原因: -

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

  2. 我想知道怎么回事 通常工作舒适 编程的时候。 (这有助于了解 当你包括一个时会发生什么 头文件。)

  3. 也许我可以优化我的程序 只知道怎么回事 工作,而不必阅读书籍 关于优化和消耗时间 优化而不是 发展。

  4. 我知道有关于编译器如何工作的书籍。但是我对此并不感兴趣,因为我之前提到的原因,我只对了解阶段程序是否有兴趣获得一个完整的工作程序感兴趣。也许有核心阶段和可选/ IDE依赖阶段;如果这是真的,我想知道两者。

    编辑:非常感谢您的回答。我得到了我想知道的内容,但我会打开其他2个问题以获取更具体的信息。

4 个答案:

答案 0 :(得分:4)

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

但是,C ++标准库并不像Java或Python标准库那么大。因此,要编写实际应用程序,通常需要各种第三方库。这些可能是也可能不是平台独立的。满足您需求的良好平台独立第三方库是Boost和Qt。

答案 1 :(得分:3)

C ++,该语言与操作系统和架构无关。但是,编译的可执行文件依赖于操作系统。如果您不使用Visual C ++特定功能或与之相关的任何“语法错误”,我很确定您的程序在其中编译后可以在其他平台上运行。

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

如果您依赖此级别的优化,则不会更快地获得 代码。设计更好的算法是你应该真正开展的工作。

答案 2 :(得分:1)

  1. C ++是一种标准,因此它与技术无关。一旦开始使用库,事情变得复杂,因为并非所有库都可用。同样依赖于语言扩展和非标准行为。

  2. 以当前形式回答过于复杂。你究竟想知道什么?创建一个单独的问题不是更好吗?

  3. 优化比您想象的更难。可以说算法优化产生了最好的结果 - 如果你选择一个愚蠢的算法,你的语言技能对你尝试无济于事。

答案 3 :(得分:1)

C ++ 独立于操作系统,但您必须compile it for each system you plan to use it on。然而,存在依赖于操作系统的库和内容,例如Winapi依赖于Windows。

查看标准库,例如cplusplus或查看Boost。那里有OS独立代码。