我们可以从(可调试的)编译代码中提取C结构布局吗?

我需要在一个文件中转储一个结构布局,然后通过在另一个代码中读取该文件来重新创建该结构。
一般来说,我注意到编译器可能不会保存完整的结构布局。有没有办法做到这一点

这是多核实现所必需的,两个程序之间需要通信,并且数据类型仅在一个程序中定义,该程序希望将数据类型信息传输到不同内核上的另一个程序,以便其他程序可以读取数据。
不幸的是,数据类型是一个复杂的嵌套结构,没有预定义

您可以使用标准长度类型(包括在<stdint.h>中)和避免位字段的压缩结构,以使您的结构可以在编译器中移植。
如果你需要交叉CPU,你可能还需要考虑字节数:像Huton()这样的套接字函数,反之亦然。

你也可以考虑用一个人类可读的格式编写一个文件,比如JSON,并在另一边解析它。

发表评论