我一直在寻找一种在编译时将文件存储为const char*
的方法。
我尝试这样做:
#define STRINGIFY(...) #__VA_ARGS__ // va args deals with commas
#define INCLUDE(path) #include path // error: '#' is not followed by a macro parameter
constexpr const char* source = STRINGIFY(INCLUDE("source.txt"));
但是很遗憾,您不能在宏扩展内放置include指令。有什么办法可以解决这个问题?还是通过其他方式在编译时获取文件内容?
执行此操作的经典方法是编写一个awk或perl脚本来读取数据文件并生成一个.H文件