5

大きなデータ セット (さまざまな長さの整数配列、テキスト文字列のライブラリなど) を実行可能ファイルに直接ハードコードしたいので、追加のファイルはありません。

私の質問は、C++ でこれを行うための最も実用的で組織化された方法は何ですか? ヘッダーまたはソース ファイルに関して、どこにデータを配置しますか? どのような構造を使用すればよいですか?

これは、データを処理する方法として受け入れられていないことを認識しています。しかし、ユーモアを!

4

2 に答える 2

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);
}

テスト実行は次のようになります。

$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 に答える