都可以用來獲取協議對象序列化成字節流的長度。
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