gpt4 book ai didi

c - 为什么 MsgPack 键是 msgpack_object 类型?

转载 作者:行者123 更新时间:2023-11-30 17:56:50 29 4
gpt4 key购买 nike

在 MsgPack 的 C API 中,为什么键(例如 msgpack_object_kv 的键字段)是 msgpack_object 类型?

https://github.com/msgpack/msgpack-c/blob/master/src/msgpack/object.h

为什么它们不只是 msgpack_object_raw?它们可以是任何类型吗?

最佳答案

它们可以是任何类型吗?

是的。这正是键被表示为 msgpack_object-s 的原因。

如果你看maps format specification您可以看到 map 由 N = map 内的对数定义,其中:

odd elements are key and next element of the key is its associate value

因此您可以自由地使用任何类型的对象作为键。

以下是来自 test/msgpackc_test.cpp 的示例(包含 2 对 map ):

unsigned int map_size = 2;
/* ... */
msgpack_pack_map(&pk, map_size);
msgpack_pack_true(&pk);
msgpack_pack_false(&pk);
msgpack_pack_int(&pk, 10);
msgpack_pack_int(&pk, -10);

如您所见,第一个键是 MSGPACK_OBJECT_BOOLEAN,第二个键是 MSGPACK_OBJECT_POSITIVE_INTEGER

关于c - 为什么 MsgPack 键是 msgpack_object 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13202058/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com