我有一些用C语言编写的代码,其中包含一些用于保存数据的相当实质的结构。我想使用tpl对struct数据进行序列化/反序列化,以保存和加载程序的数据,而不必编写一堆代码来执行此操作。
我的问题在于tpl_map()
函数:我似乎无法解析一个语句,它会序列化一个包含一个包含字符串数组的结构的结构数组。
tpl's documentation并不一定说你可以做到这一点,或者你不能这样做。我要序列化的内容将由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)
中的A(S($(A(i))))
会出现此问题。
有什么想法吗?