使用内联插入标题内容

Using inline to Insert a header content

本文关键字:标题 插入      更新时间:2023-10-16

头文件的内容需要复制并粘贴到我的几个类中。原因是——使用include指令不会使文件的引用对外部编译器可用,因此看起来我唯一的选择是将头文件的内容复制到我的类中。

我想知道我是否可以使用特定的*内联指令来实现这一点。

创建我自己的预处理器的最佳方法是什么?!

如何使用m4宏语言?见,例如,

  • http://www.gnu.org/s/m4/
  • http://mbreen.com/m4.html
  • 如果在Linux系统上安装了GNU m4,试试info m4

m4是一种通用宏处理语言。它在GNU Autotools中被大量使用。你可以定义一些m4宏来得到你想要的,然后在编译之前通过m4运行它来预处理你的代码,等等。

您的外部编译器在编译时不扩展includefile的最可能原因是设置包含搜索路径失败——但是解决特定问题,您可以使用-E选项让gcc编译器扩展所有包含文件。

  gcc -E mycfile.c >myexpeandedcfile.c

您需要创建自己的预处理器工具来执行#include的等效操作。

这取决于您使用什么编译器来编译二进制文件。有些编译器提供了可能影响程序内联的优化标志。在gcc和g++中,优化标志-finline-functions将强制内联它认为"简单"的函数。编译器使用一组启发式方法来确定函数的简单性,因此这可能起作用,也可能不起作用,这取决于您的代码。-finline-function标志也由优化级别3设置,在gcc和g++中使用-O3标志启用。

稍微调整一下,并在代码中添加内联指令,您应该能够设置一些编译器标志来实现完全内联。