3

我有一些用 C 语言编写的代码,其中包含一些用于保存数据的相当大的结构。我想使用tpl对结构数据进行序列化/反序列化以保存和加载程序的数据,而不必编写一堆代码来完成它。

我的问题在于tpl_map()函数:我似乎无法让它解析一个语句,在该语句中它将序列化一个结构数组,其中包含一个包含字符串数组的结构。

tpl 的文档不一定说你可以这样做或你不能这样做。我想序列化的东西将由 描述A(S(i$(A(s)A(s)A(s)A(s)iiiiis)sssuussi)),但tpl_map()每次都会引发解析错误。

这些是相关的结构定义:

typedef struct y {
    char** a;
    char** b;
    char** c;
    char** d;
    int e;
    int f;
    int g;
    int h;
    int i;
    char* j;
} y_t;

typedef struct x {
    int a;
    y_t y;
    char* b;
    char* c;
    char* d;
    unsigned int e;
    unsigned int f;
    char g[40];
    char* h;
    unsigned int i;
} x_t;

我正在尝试序列化一个x_t.

将 tpl 格式字符串削减到最小可能并进行处理,我发现它似乎不喜欢在外部结构内的内部结构内有一个数组。更具体地说,例如A(i)in会出现问题。A(S($(A(i))))

有什么想法吗?

4

0 回答 0