我想将大量数据(不同长度的整数数组,文本字符串库等)直接硬编码到可执行文件中,因此没有其他文件.
我的问题是,在C++中这样做最实用,最有条理的方法是什么?根据标题或源文件,我将在何处放置数据?我应该使用什么结构?
我意识到这不是处理数据的可接受方式.但幽默我!
对于C++和C,您可以使用头文件为这些变量添加声明,然后将实际的初始化代码放入.c(或.cc)文件中.C和C++都有不错的初始化语法.例如:
mydata.h:
extern int x;
extern int a[10];
extern unsigned char *s;
Run Code Online (Sandbox Code Playgroud)
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";
Run Code Online (Sandbox Code Playgroud)
然后main.c将有:
#include "mydata.h"
#include <stdio.h>
int main(const int argc, char *argv[])
{
printf("%d, %d, %s\n", x,a[5],s);
}
Run Code Online (Sandbox Code Playgroud)
测试运行看起来像这样:
$gcc -o main main.c mydata.c
$ ./main
123, 6, mystring
Run Code Online (Sandbox Code Playgroud)
现在,要真正有条理,可以编写Perl/Python/PHP脚本,从数据源生成这样的格式化文件,如CSV文件的SQL数据库.