Protocol buffers - unique numbered tag - clarification?

前端 未结 2 428
囚心锁ツ
囚心锁ツ 2021-01-30 17:04

I\'m using protocol buffers and everything is working fine. except that the fact that I don\'t understand - why do I need the numbered tags in the proto file :

2条回答
  •  没有蜡笔的小新
    2021-01-30 17:35

    These field numbers are used by protobuf while encoding and decoding. See here for more details.

    So each and every field has wire type so int32 has wire type as 0 and your field number say is 2 so it will be encoded as 0001 0000 i.e. 10 in hex.

    And later on when its decoded, its left shifted by 1 which makes it as 001 0000 and last three lsb decides wire type i.e. it then makes out its of type int field and rest decides which field in proto it is i.e. 00010 is 2. So field 2 of wire type 0 (int)

提交回复
热议问题