一起来看看protobuf中容易引起bug的一个细节
来源:互联网 发布:淘宝直播卖的衣服好么 编辑:程序博客网 时间:2024/05/21 03:25
我们已经介绍过protobuf的使用了, 故不再赘述, 下面我们来看看如下代码的一个小bug:
test.proto内容为:
package NS; message PointReq { required int32 x=1; required int32 y=2; }main.cpp为:
#include <iostream>#include <string>using namespace std;#include "test.pb.h"using namespace NS;int main(){ PointReq point; point.set_x(1); point.set_y(0); string tmp; bool ret = point.SerializeToString(&tmp); // 这里要传地址 if (ret) { printf("encode ok!\n"); } else { printf("encode error!\n");return -1; }// 为了便于网络传输, 这里需要转化成指针式bufferconst char *p = tmp.c_str();string s = p; PointReq point2; ret = point2.ParseFromString(s); if (ret) { printf("decode ok, %d, %d\n", point2.x(), point2.y()); } else { printf("decode error!\n");return -2; } return 0;}
结果为:
taoge@localhost Desktop> make cleanrm -fr *.o main taoge@localhost Desktop> make g++ -c -L/usr/local/lib -lprotobuf -o main.o main.cpp g++ -c -L/usr/local/lib -lprotobuf -o test.pb.o test.pb.cc g++: -lprotobuf: linker input file unused because linking not doneg++: -lprotobuf: linker input file unused because linking not doneg++ -L/usr/local/lib -lprotobuf -o main main.o test.pb.o taoge@localhost Desktop> ./main encode ok!decode error!taoge@localhost Desktop>为什么是失败呢? 请自己思考一下, 如果没有结果, 可以参考我之前的博文:http://blog.csdn.net/stpeace/article/details/53046829
0 0
- 一起来看看protobuf中容易引起bug的一个细节
- 一起来看看protobuf中容易引起bug的一个细节
- memcpy引起的一个bug
- 一个分号引起的bug
- 一个BUG引起的思考
- php中post键值过多引起的一个bug
- 处理系统中一个并发引起的bug
- 讨论一个Android 异步开发中容易忽视的bug
- C/C++超级需要注意的容易引起的Bug
- 一个容易被忽视的 strlen 细节
- java编程容易出bug的基础细节
- GetTickCount引起的一个诡异bug
- 一个由sscanf函数引起的bug
- 一个类型转换引起的Bug
- 一个由于spring事务引起的bug
- 一个由于全局变量引起的BUG
- Loader Lock引起的一个Bug
- 一个字符串引起的大bug
- Android Fragment(一)之onResume不执行
- ionic 图片点击放大,双指缩放
- jQuery是控制和操作select详解。
- 如何制定销售流程
- 任意长的整数加法运算
- 一起来看看protobuf中容易引起bug的一个细节
- leetcode No128. Longest Consecutive Sequence
- G - Woodcutters
- 无分区创建thin-pool的方法(其实就是docker的loop设备的手动创建过程)
- Unity shader 七 能在Ugui上面使用的顶点动画Shader
- 协作图
- 401. Binary Watch【E】
- F - Minimum Inversion Number
- Construct Binary Tree from Preorder and Inorder Traversal