已知数据类型如何动态生成该类型的一个对象
比如有个buffer
byte pData[256];假如pData[0] = 1表示pData[1]--pData[4]表示一个int数据,pData[0] = 2表示pData[1]--pData[2]表示一个unsinged short,如何把数据取出来,或者说如何生成一个该类型的对象,是不是必须得这样逐条判断?
if (1 == pData[0])
{
int nData = *(int*)(pData+1);
}
else if(2 == pData[0])
{
unsinged short n = *(unsinged short*)(pData+1);
}
...
[解决办法]
这不就是序列化的过程么
[解决办法]
必须逐条判断,因为类型是在编译期定死的,而数据是运行期才确切的知道。