求详解一下这段c语言代码是啥意思
typedefstruct{inta;intb;intc;}mustruct;intmyfunction(inta,intb){unsingnedchar*buf[100...
typedef struct
{
int a;
int b;
int c;
}mustruct;
int myfunction(int a,int b)
{
unsingned char *buf[100];
mustruct *strs=(mustruct *)buf;
int i;
for(i=0;i<5;i++)
{
strs[i].a=0;
strs[i].b=1;
strs[i].c=2;
}
return;
}
我只看得懂一开始的结构体 下面的函数里面定义了一个char类型的数组指针 下面是什么意思? 展开
{
int a;
int b;
int c;
}mustruct;
int myfunction(int a,int b)
{
unsingned char *buf[100];
mustruct *strs=(mustruct *)buf;
int i;
for(i=0;i<5;i++)
{
strs[i].a=0;
strs[i].b=1;
strs[i].c=2;
}
return;
}
我只看得懂一开始的结构体 下面的函数里面定义了一个char类型的数组指针 下面是什么意思? 展开
3个回答
展开全部
mustruct *strs=(mustruct *)buf;
这句话是说,第一把buf指针的值赋给strs,第二buf所申请的栈空间如果使用strs指针来使用会被当成mustruct的结构类型来解析,比如:
strs[0].a 即 buf[0],strs[0].b 即buf[1],strs[1].a即buf[3]....如此类推。
相当于把这样这400个字节的空间套到了mustruct结构中。。
然后后面是结构体的赋值。。应该可以看懂了。。。
这句话是说,第一把buf指针的值赋给strs,第二buf所申请的栈空间如果使用strs指针来使用会被当成mustruct的结构类型来解析,比如:
strs[0].a 即 buf[0],strs[0].b 即buf[1],strs[1].a即buf[3]....如此类推。
相当于把这样这400个字节的空间套到了mustruct结构中。。
然后后面是结构体的赋值。。应该可以看懂了。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询