使用内联插入标题内容
Using inline to Insert a header content
头文件的内容需要复制并粘贴到我的几个类中。原因是——使用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标志启用。
稍微调整一下,并在代码中添加内联指令,您应该能够设置一些编译器标志来实现完全内联。
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 预处理器:插入结构名称中的前一个行号
- 在未初始化映射的情况下,将值插入到映射的映射中
- 如何在c++中只将键插入到bimap的一侧
- 如何将结构插入到集合中并打印集合的成员
- C++json插入数组
- Visual Studio 2019:插入多个C++风格的单行注释
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- nlohmann-json将一个数组插入到另一个数组中
- 有效地使用std::unordered_map来插入或增加键的值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 正在插入动态数组
- 插入或删除时获取usb的dos_name
- 叮叮当当在修复时插入多个"覆盖"说明符
- 链表c++插入,所有情况都已检查,但没有任何工作
- 对于C++,方括号中的标题必须总是在引号中的标题之上吗
- 在调试模式下允许在特定的标题中插入视觉工作室
- 谷歌驱动器API插入新文件的无标题名称
- 使用内联插入标题内容