关于GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFF宏的问题

meiz_2000 发布于 2011/02/23 16:01
阅读 583
收藏 1

宏GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFF在google protobuf中用于计算类中成员变量的偏移量,提供类似C语言中offsetof宏的功能。根据C++的规定,对于公有成员变量可以使用宏的方法获取其偏移量;但是在google protobuf生成的C++代码中用该宏计算私有成员变量的偏移量,想问一下诸位,有谁能具体解释一下google protobuf具体是怎么实现的?是不是通过某种方式欺骗了编译器?

加载中
0
newzai
newzai

也不是欺骗编译器

只是把所有的字段的信息都保存起来了,根据protobuf定义的规则生成了很多冗余的成员.和数据,不过在网络上传输的是没有冗余的 

返回顶部
顶部