请求协助编写正确的FlatBuffers Schema(.fbs)文件
正确的FlatBuffers Schema实现
先修正原代码的核心问题:
- 字符串属于引用类型,无法放在
struct中,必须用table承载 - 需要把
id和data合并到同一个数据结构里,才能同时传递这两个参数 root_type必须指向实际存在的类型
以下是正确的Schema代码:
namespace FlatbufData; // 定义包含id和固定大小浮点数组的table table SenderData { id: string; // 字符串类型的id参数 data: [float: 100]; // 固定大小为100的浮点数组 } // 指定根类型,作为序列化/反序列化的入口 root_type SenderData;
关键说明:
- namespace:保留你设定的
FlatbufData,用于区分不同项目的FlatBuffers类型 - table的选择:因为要容纳字符串类型的
id,必须用table——struct仅支持基本数值类型和其他struct,无法承载引用类型 - 固定大小数组:
[float:100]表示长度固定为100的浮点数组,FlatBuffers会直接分配对应内存,无需额外存储长度字段 - root_type:指定
SenderData为根类型,确保二进制数据能正确反序列化为目标结构
内容的提问来源于stack exchange,提问作者jus
相关产品推荐
相关产品推荐

