【问题标题】:Program in freestanding environment独立环境中的程序
【发布时间】:2014-08-19 07:00:44
【问题描述】:

引自 3.6.1/1 N3797:

程序应包含一个名为 main 的全局函数,它是 指定程序的开始。是否由实现定义 一个独立环境中的程序需要定义一个主 功能。

“程序”和“独立环境中的程序”是不同的东西吗?

【问题讨论】:

    标签: c++


    【解决方案1】:

    C++ 常用于嵌入式系统编程。在那里,您可能会遇到缺少“主机环境”的(n 个示例),在这种情况下,您是在 独立环境 中运行的。

    这实际上意味着,除了缺少 OS I/O、线程等库之外,还有一些设施不可用,它需要汇编启动代码才能让您到达main();特征差异(只是为了得到一个想法)是

    • 异常需要代码展开堆栈,同时寻找合适的异常处理程序来处理异常。通常,此代码与您的 C++ 应用程序链接,但在独立内核中,必须手动提供代码。

    • 如果您想在运行时创建对象,则必须编写自己的堆管理器(新建/删除);如果您需要多个线程,则必须编写自己的调度程序

    所以considerations、技术和application domain 可能会有所不同,但程序就是程序。

    【讨论】:

    • 即在某些嵌入式系统程序中可能缺少main函数。是真的吗?
    • 如果你有一个这样的程序的小例子会更好。你能改进答案吗?
    【解决方案2】:

    是的,程序和独立环境中的程序是不同的东西。在独立环境中,您无需使用任何内置库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-25
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      • 2021-03-28
      • 1970-01-01
      • 2018-05-13
      相关资源
      最近更新 更多