2
我有三個結構header
,dataA
和dataB
。 header
將確定將使用的結構。該dataA
和dataB
具有幾乎相同的結構(比方說):指向兩個不同的結構
struct dataA
{
int intValue;
char reserved1[8];
float floatValue;
char reserved2[4];
short shortValue;
};
struct dataA
{
int intValue;
short shortValue;
char reserved[2];
float floatValue;
};
我要打印喜歡:
sprintf(outStr, "%i, %f, %s", p->intValue, p->floatValue, p->shortValue);
- 或 -
sprintf(outStr, "%i, %f, %s", p.intValue, p.floatValue, p.shortValue);
我如何宣佈p
? (注:兩個dataA
和dataB
有一個大的結構,但幾乎相同的數據,除了那些保留值)
我想是這樣的:
void * p;
if (header->type==1)
p = (dataA*)(pData);
else if (header->type==2)
p = (dataB*)(pData);
// print all data here
注意:這裏pData
是一個指向我將閱讀的(原始)數據的指針。我只需要這些非保留值,而不考慮保留的值。
你能改變類型定義嗎? – reuben