我想使用指针算法从数据包结构中获取一些字段。但是下面的代码有什么问题?
在第一种情况下,我认为如果我从数据包的开头开始 4 个字节(2 个短字段),我会得到 tLow。但它没有给出预期值。另外,第二种情况我想通过从数据包的开头开始 12 个字节来获取数据字段。什么我的想法有问题吗?
struct packet{
short len;
short field;
int tLow;
int tHigh;
void *data;
}
int main()
{
struct packet pack;
struct packet *pck;
pack.len=3;
pack.field=34;
pack.tLow=712;
pack.tHigh = 12903;
pack.data = "message";
pck = &pack;
int *timeLow = (int * )pck + 4; // i want to get tLow
printf("Time Low :%d\n",*time);
char *msg = (char *)pck + 12 ;// want data
printf("Message :%s\n",msg);
return 0;
}