c - 在C程序编译的哪个阶段,在调用函数中插入了一个内联函数
问题描述
在宏扩展的情况下,插入发生在预处理阶段。
但是如果在哪个编译阶段内联,编译器会决定是插入它还是作为普通函数本身调用。
如果选择插入,它将在什么阶段插入。
解决方案
“编译器阶段”并不是一个真正的标准化术语。C 语言只规定了一种叫做翻译阶段的东西,它详细规定了各种预处理器阶段,但对预处理后进行的所有工作却非常模糊。标准将其总结为最终的翻译阶段:
所有外部对象和函数引用都已解析。链接库组件以满足对当前翻译中未定义的函数和对象的外部引用。所有此类翻译器输出都被收集到程序映像中,该程序映像包含在其执行环境中执行所需的信息。
这包括优化和在生成可执行二进制文件之前需要完成的任何其他事情。所有关于如何以及何时完成的细节都留给编译器实现来决定他们认为合适的。
推荐阅读
- java - 使用 GitLab CI/CD 加特林
- c# - 如何将文件保存到 Hololens 上的 Documents 文件夹?
- reactjs - 酶:“错误:方法“文本”应在 1 个节点上运行。但找到了 0 个节点。”
- javascript - 由于使用Javascript的另一个选择,如何更改选择的选项?
- javascript - 如何将带有 Javascript 的类添加到特定 div 中自动生成的 Joomla 菜单子项“li”?
- c++ - 请帮助我了解在下面的代码中使用相同的命名空间
- cakephp - Cakephp 3 - 如何在表格中集成外部资源?
- python - 从用户那里获取输入并找到输入的阶乘
- ios - iOS 13 - 推送时的 Buggy 大标题 UINavigationBar
- java - RSA解密JAVA BadPadding