c - 如何在包含在 C 中定义结构的头文件的文件中包含 extern typdef struct?

标签 c struct extern

我有三个文件,libsched.cmain.clibgrapher.c 以及它们的 header *.h

libsched.h 定义typedef struct p{.....}process; 然后main.c 使用libsched。 h. 然后我有另一个文件 libgrapher.c,它使用 libsched.h 中定义的 process

如何在不包含 libsched.h 的情况下告诉 libsched.h process 存在于 libsched.h 中在 libgrapher.h 中。

libgrapher.h 中重新定义 struct 给我一个错误,它被重新定义了。

最佳答案

您的要求没有任何意义。 libgrapher.h 需要访问 libsched.h 中的所有内容,然后它应该包含该头文件。或者,如果它不应访问该 h 文件中的所有内容而只能访问其中的一部分,那么您需要将 h 文件一分为二。

奇怪的要求和躲避各种文件依赖性的晦涩技巧的需要总是源于糟糕的程序设计。每当您发现自己需要这样的东西时,请退后一步并重新考虑您的程序设计。

关于c - 如何在包含在 C 中定义结构的头文件的文件中包含 extern typdef struct?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29770644/

相关文章:

c - WinCC C 脚本从字中读取位 - 一般 C 建议

c - 如何在位域结构中输入常量字段

c - 指向 C 中结构指针的空指针

创建静态全局的多个实例/副本

c - C 编程中的数组与局部变量

iphone - 在 Objective-C block 中调用 C 函数(链接器错误)

c++ - extern const 在这种特殊情况下

c - 为什么不外部链接到静态变量?

c - C语言实现linux下shell的输入输出

c++ - 将数组传递给函数