【发布时间】:2013-08-30 05:40:40
【问题描述】:
我在一个项目中遇到了以下代码 sn-p 并且不确定如何计算变量“response”的值。在这里我们可以看到,pic_data 包含两个一维数组,但“response”将这两个一维数组作为二维数组访问。 谁能解释一下这是如何工作的?
注意:下面的代码不是更大代码块的完整代码sn-p。
#define MAX 100
#define MAXBUF 100
u32 response;
u32 index;
typedef struct {
u16 flag;
u16 status;
} __attribute__ ((packed)) register;
typedef struct
{
register *rq[MAX];
u64 buf[MAXBUF];
}Data;
Data *pic_data;
void getres(Data *pic_data) {
response = *((u32*)&(pic_data->rq[index][pic_data->buf[index]]));
}
【问题讨论】:
-
我添加了“c”标签,假设这是 C 代码。如果不是(可能是 C++?),请相应地更新标签。用编程语言标记的问题可能会得到更多关注。
标签: c arrays pointers structure