- 无内存申请
- 简单轻量, 只有 2 个接口
- 支持变长数组
int main() {
uint8_t serialized_buf[40960];
struct stUseItemReq use_item_req = {.itemID = 1001};
// 编码
const size_t wpos =
pk_encode(stUseItemReqObject, &use_item_req, sizeof(use_item_req), serialized_buf, sizeof(serialized_buf));
// 写入到文件或者网络
write(socket, serialized_buf, wpos);
// 解码
const size_t rpos =
pk_decode(stUseItemReqObject, &use_item_req, sizeof(use_item_req), serialized_buf, wpos);
...
}
// 编码
size_t pk_encode(const struct clColumn *column, const void *addr, size_t size,
uint8_t *buf, size_t len);
// 解码
size_t pk_decode(const struct clColumn *column, void *addr, size_t size,
const uint8_t *buf, size_t len);