使用内联插入标题内容

时间:2011-07-17 21:48:46

标签: c++ c include c++-cli c-preprocessor

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

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

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

4 个答案:

答案 0 :(得分:3)

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

m4是一种通用的宏处理语言。它特别在GNU Autotools中使用得很多。您可以定义一些m4宏来获得所需的内容,然后在编译之前通过m4运行代码来预处理代码等。

答案 1 :(得分:1)

您需要创建自己的预处理器工具,以完成#include

的等效工作

答案 2 :(得分:1)

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

通过稍微调整并向代码添加内联指令,您应该能够设置一些编译器标志以实现完整内联。

答案 3 :(得分:1)

编译时外部编译器未扩展包含文件的最可能原因是无法设置包含搜索路径 - 无论如何解决特定问题,您都可以让gcc编译器扩展所有使用-E选项的包含文件。

所以,

  gcc -E mycfile.c >myexpeandedcfile.c
假设我正确理解你的问题,

应该工作。