硬编码大数据集到可执行文件?

时间:2012-12-16 21:21:44

标签: c++

我想将大量数据(不同长度的整数数组,文本字符串库等)直接硬编码到可执行文件中,因此没有其他文件。

我的问题是,在C ++中执行此操作的最实用和最有条理的方法是什么?根据标题或源文件,我将在何处放置数据?我应该使用什么结构?

我意识到这不是处理数据的可接受方式。但是幽默我!

2 个答案:

答案 0 :(得分:8)

对于C ++和C,您可以使用头文件为这些变量添加声明,然后将实际初始化代码放入.c(或.cc)文件中。 C和C ++都有不错的初始化语法。例如:

mydata.h:

extern int x;
extern int a[10];
extern unsigned char *s;

mydata.c:

#include "mydata.h"
int x = 123;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
unsigned char *s = "mystring";

然后main.c将有:

#include "mydata.h"
#include <stdio.h>

int main(const int argc, char *argv[])
{
  printf("%d, %d, %s\n", x,a[5],s);
}

test run看起来像这样:

$gcc -o main main.c mydata.c
$ ./main 
123, 6, mystring

现在,要真正有条理,可以编写Perl / Python / PHP脚本,从数据源生成这样的格式化文件,如CSV文件的SQL数据库。

答案 1 :(得分:1)

试试这个:

http://sourceforge.net/projects/bin2obj/

将您的数据转换为OBJ并链接到您的项目。