首页 > 解决方案 > 如何在 flatbuffers 模式文件中声明指针类型?

问题描述

我正在学习平面缓冲区,我希望在 C 中使用它们。我想做的是为我的结构编写一个模式文件。这是我的结构之一:

typedef struct
{
    unsigned short request_number;
    unsigned short length;
    unsigned short height;
    unsigned char   *buffer;
} CASH_RECEIPT_REQUEST;

如何unsigned char *buffer在我的模式文件中写入指针?

标签: cschemaflatbuffers

解决方案


不要存储指针,而是存储它们指向的实际数据:

table CashReceiptRequest {
  request_number:ushort;
  length:ushort;
  height:ushort;
  buffer:[ubyte];      
}

如您所见,缓冲区是“ubyte 向量”。请注意,如果length是缓冲区的大小,则可以省略该字段,因为该大小已经存储为向量的一部分。


推荐阅读