我有一个带有变量Item
的结构value1
,我将这个结构的实例放在队列中。我现在想查看队列并获取结构实例中保存的数据。
以下代码按预期工作。
Item *itemHead = queue_peek_head(itemQueue);
printf("Head: %d\n", itemHead->value1);
但是,我想做同样的事情,最好没有像itemHead
这样的额外变量。有没有办法做到这一点?我的原始思路让我看到了下面的代码,正如我所知,它不起作用(取消引用void *
指针,无效的void
表达式)。
*(queue_peek_head(itemQueue))->value1; //doesn't give me value1
任何人都可以从队列中的第一个value1
中提取(最好是一行)方式来访问Item
吗?
答案 0 :(得分:2)
((Item*)queue_peek_head(itemQueue))->value1
编译器需要知道类型才能访问结构的成员。
(另外,你不会做*(somePointer)->
,除非有一个指向指针的指针,那里有两个解引用。)