我想在C++中做以下事情:
static const char* data[] = { #include "mydata.hh" };其中mydata.hh的内容应该作为字符数组分配给数据。我已经尝试了各种变体和(一级和二级)字符串化,通过#include的#x。到目前为止,没有一个有效。这真的是可能的吗?还是我错过了什么?
谢谢您的支持。
发布于 2012-04-21 05:21:42
您可以:
static const char* data[] = { // <--- new line
#include "mydata.hh"
}; // <--- don't forget semi-colon但是为什么呢?
这都是假设mydata.hh包含与声明兼容的内容:
//mydata.hh
"bla", "goo", "foo"发布于 2012-04-21 05:23:40
预处理器只适用于以可选空格和#开头的语句,因此您需要将#include放在单独的行上。
示例:
static const char* data[] = {
#include "mydata.hh"
};发布于 2012-04-21 05:26:27
在include指令周围换行。所有字符必须在"header“中用逗号分隔。然后,您的代码将被成功编译。尽管我确信这样的编程风格看起来很糟糕。
https://stackoverflow.com/questions/10253636
复制相似问题