【发布时间】:2014-03-12 20:42:56
【问题描述】:
我查看了堆栈溢出中的其他条目,但它们确实“超出”了界限。
在我的代码中,我在一系列嵌套结构中蜿蜒前行:
static inline void * get_resp_ptr(U32 blade_ix, U32 q_id)
{
per_blade_data * bd = bfr_blade_data + blade_ix;
bfr_pendcmd_q_t * pcq = bd->bfrpb_ques + q_id;
response_t * res = pcq->bfrpq_resp;
return (void *)(res + pcq->bfrpq_resp_rdix);
}
"bfrpq_resp" 是一个指向 response_t 类型的指针。此函数的最后两行 both 得到错误消息。让我大吃一惊....关于编译器想说什么的任何猜测?我很想投入 uintptr_t 并只使用算术。 :(
编辑:那没用。将 pcq->bfrpq_resp 分配给 uintptr_t 会导致相同的错误消息。仅仅引用该字段就会产生结果。我认为 GCC 需要在这里提供不同的错误消息。
【问题讨论】:
标签: arrays gcc gcc-warning