Protobuf C++類中成員函數GetCachedSize()與ByteSize()的區別

都可以用來獲取協議對象序列化成字節流的長度。
GetCachedSize()取的是調用ByteSize()之後保存的值。
如果調用GetCachedSize()時還未調用過ByteSize(),返回0。

#include "common.pb.h"
#include <iostream>

int main()
{
	TestProtocol one;
	one.set_data1(1);
	one.set_data2(2);
	
	int size1 = one.GetCachedSize(); // 0 
	int size2 = one.ByteSize(); // 4
	int size3 = one.GetCachedSize(); // 4

	std::cout << size1 << " " << size2 << " " << size3 << std::endl;

	return 0;
}

輸出爲:0 4 4

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章