**关闭。**此题需要debugging details。目前不接受答复。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
3天前关闭。
Improve this question
我有一个文件main.c
,其中包含以下代码行:
struct args packed;
struct args
在另一个名为dct.c
的文件中定义。但该文件不包括在内。它们作为gcc -Wall main.c dct.c ...
传递给编译器
编译器不应该发出关于不完整类型的警告吗?
请注意,struct args
***正在被示例化,其成员在main.c
中访问。
我之所以注意到这一点,是因为linter
警告我类型不完整,但GCC
似乎对此没有问题。
我错过了什么?因为正如我所怀疑的,根据this answer,它们确实是不同的翻译单元,GCC无法看到第二个文件中的定义。
1条答案
按热度按时间j91ykkif1#
你确定这个结构体没有在你的main. c包含的头文件中声明吗?您是否正在使用某个为您提供魔法的IDE?
如果我只是在一个文件中定义一个结构体,并尝试在另一个文件中使用它,它不会像你描述的那样工作:
这是可行的: