如何解析结构体?

suncs2001 2012-12-08 12:55:34
在某个工程里定义了一个结构体,当然这个结构体放在一个.c 文件中。同时产品在运行的时候会把与这个结构体对应的变量存储到一个文件中。现在我想做一个工具将文件中的数据根据结构体的定义给还原对应出来。
比如在一个 def.c 中,有这样一个结构体

struct A
{
int time;
int num;
}


系统在运行的时候,每隔1秒会将这个结构体对应的数据存入到一个叫data.txt 的文件中。比如:
(time)16 (num)100
(time)17 (num)150
我现在已经拿到这个data.txt文件,然后将数据读取出来。
问题在于,这个结构体是个复合结构体,另外就是这个结构体很可能成员会有变化。 我想通过解析对应的.c文件,实现只要导入这个.c文件,再导入对应的data文件就能实现把数据解析的功能。
否则如果我在工具里仿照.c中的结构体声明一个再解析,那么每次成员变化时我都要修改工具代码。这是非常麻烦的。不管这个结构体变成什么样子,我只要导入对应的.h文件就能把数据解析。
这个东东是不是涉及到编译器了啊,不知道怎么实现。
...全文
235 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
youyou1912 2013-04-20
百度 boost序列化
回复
tkminigame 2012-12-08
如果对应的成员有变化,结构体的定义就不会像你描述的那样了。如果结构体经常变,基本你就不应该用这样的结构体。基本你的结构体里面只需要有两种数据类型:字典和链表,这样你就可以应对任何的数据改动了,至少在不修改源代码重新编译的前提下。
回复
FancyMouse 2012-12-08
你还不如每一个需要写入txt的struct都实现一个serialize deserialize的成员,导入程序调用这些成员。
回复
发动态
发帖子
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
社区公告
暂无公告