5

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

我的问题是,在 C++ 中执行此操作的最实用和最有组织的方法是什么?就头文件或源文件而言,我会将数据放在哪里?我应该使用什么结构?

我意识到这不是处理数据的公认方式。但请幽默!

4

2 回答 2

8

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

我的数据.h:

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

我的数据.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);
}

测试运行如下所示:

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

现在,要真正组织起来,可以编写 Perl/Python/PHP 脚本来从您的数据源生成这样的格式文件,例如 CSV 文件的 SQL 数据库。

于 2012-12-16T22:04:26.347 回答
1

试试这个:

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

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

于 2012-12-16T22:17:02.490 回答