0

我有一个 C 代码,其中第三行出现错误:

struct in6_pktinfo *ptr;
ptr = (struct in6_pktinfo *) CMSG_DATA (cmsgptr);
*ifindex = ptr->ipi6_ifindex;


ERROR: dereferrencing pointer to incomplete type

gcc 4.6/4.7使用 centos/ubuntu 发行版的情况下,但不是在gcc 2.96

现在,我如何确定这个问题是由 gcc 引起的?

4

1 回答 1

2

gcc 2.96 真的很老了,你不应该依赖它所说的。

struct如果它的定义位于包含文件中,而包含文件的顺序不同,则可能会发生类似的事情,因为#ifdef这取决于编译器版本。因此,您可能应该检查包含的内容的顺序。Doxygen 可能是一个有价值的工具,可以可视化项目的包含结构。

于 2013-06-29T08:23:56.367 回答