使用协议缓冲区定义MAC地址

时间:2012-07-11 18:36:55

标签: c protocol-buffers mac-address

我正在尝试使用C中的协议缓冲区定义一个8字节的MAC地址数据元素。我尝试过:

message mac {
    required bytes address = 1 [(nanopb).max_size = 8];
}

但这会创建一个带有size字段和8字节地址字段的结构。我想和八字节地址字段。

我拒绝使用fixed64元素,因为MAC地址是一个字节序列。很抱歉,如果这是一个简单的问题,因为我对协议缓冲区还不熟悉。

1 个答案:

答案 0 :(得分:1)

生成大小字段是因为无法在'字节'字段上强制使用最小长度。因此,如果创建消息的人没有在字段中给出8个字节,则其余的将是垃圾数据。

尺寸字段是否会造成一些麻烦?它确实消耗了2-4个字节的RAM,但这就是全部。

(我是nanopb的作者;虽然在所有protobuf实现中这可能是相同的。)