我要在这里获取 strupct 测试B 的大小( 字节) :
struct testA
{
int x;
};
struct testB
{
std::string guid;
testA userData;
};
我可以得到这样的尺寸 但它是愚蠢的:
int testA::size()
{
return sizeof(testA);
}
int testB::size()
{
return guid.size()*sizeof(TCHAR) + userData.size();
}
是否有更简单的解决办法?
Ps:眼下的问题是这样的:
我想向数据库描述一个对象, 所以当我的应用程序崩溃时, 我就可以拿回我的数据 。 于是我用 schlite, 用 seperate 列来保存结构的所有成员 。 一切顺利, 除了我有一个成员持有 Protobuf 信息的二进制字符串, 无法插入数据库, 因为这会使 SQL 句子无效 。
因此,我提出两个解决办法:
1 将原药信息连录成json/XML 文本,这对我来说似乎很无聊
2 用 sqlite3_bind_blob 将所有内容倾弃到 db 中, 第三个参数是 blob 数据以字节计的大小, 所以问题在于 : 如何获得 ruct 的大小( 相当复杂的 )?