gpt4 book ai didi

c - 如何从 C 中的包含文件中查找缺少结构的原因?

转载 作者:太空宇宙 更新时间:2023-11-04 05:32:08 25 4
gpt4 key购买 nike

我有一个正在移植的相当大的项目,在许多头文件之一中,我包含了一个文件,其中包含 pmc_mdep 的结构定义。 (之前在文件中它只是声明,但后来它实际定义)。

尝试编译它时,我发现该结构是一个不完整的类型(我认为这意味着它缺少定义)。

当我在这个项目上运行预处理器时,它确实包含该文件,但预处理器输出没有结构定义(但确实包含该文件中的枚举)。

有没有办法弄清楚为什么一些头文件进入预处理器输出,而另一些没有?

TIA

(此外,这不是唯一的编译错误,移植已经完成了一半,但至少应该通过这一部分)

最佳答案

我通常只是从结构中回溯以找到预处理器将遇到的所有封闭的 "#ifdef""#if" 行并查看哪一个是控制将结构从输入流中移除到编译器中。

除了最复杂的头文件(即具有大量嵌套条件编译语句的头文件)之外,这通常可以很快地工作。对于这些,我通常会查看预处理器输出以确定头文件中进入编译器输入流的最后一行。

几乎可以肯定,下一行将是一个条件编译语句,其中您还没有满足包含条件。

例如,如果 this是头文件,您需要回溯以查看应定义 _KERNEL 以获得声明和定义。

关于c - 如何从 C 中的包含文件中查找缺少结构的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1067359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com