2012-07-11 37 views
3

我試圖限定使用協議緩衝區中C.我曾嘗試一個八個字節的MAC地址的數據元素:使用協議緩衝區定義MAC地址

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

但這創建具有大小字段的結構和八字節的地址字段。我只想和八字節的地址字段。

我拒絕使用fixed64元素作爲MAC地址是一個字節序列。對不起,如果這是一個簡單的問題,因爲我對協議緩衝區相當陌生。

回答

1

生成大小字段是因爲沒有辦法在'字節'字段上強制最小長度。因此,如果創建該消息的人沒有在該字段中提供8個字節,則其餘部分將是垃圾數據。

大小字段是否會造成一些麻煩?它確實消耗了2-4個字節的RAM,但僅此而已。

(我nanopb的作者;雖然可能這是所有protobuf的實現都是相同的)

+0

我試圖使這相當於用已有的代碼,並想知道是否有一種方法,使該領域是一個固定的大小。謝謝回覆。 – Bryan 2012-07-17 17:22:34