【发布时间】:2019-04-25 04:47:59
【问题描述】:
我有 2 个必须相互包含的头文件。
config.h:
#ifndef CONFIG
#define CONFIG
#include "debug.h"
typedef struct Config_t {
/* some stuff */
} Config;
#endif
调试.h
#ifndef DEBUG
#define DEBUG
#include "config.h"
void somePrintingFunction(Config* conf);
#endif
这是我得到的错误:
debug.h:错误:未知类型名称“配置”
config.c:警告:函数“somePrintingFunction”的隐式声明
debug.h:错误:未知类型名称“配置”
我猜它在标头声明中循环?
编辑:
修复了合并两个文件的问题,从而简化了项目设计。如果您想要真正的修复,请检查 cmets。
【问题讨论】:
-
不应该是 #define 吗?您正在使用#def。
-
是的,抱歉,这是错字。在我的代码中是#define
-
您从 config.c 收到警告消息,但您没有显示它。请创建minimal reproducible example。
-
不存在2个头文件需要相互包含的场景。您的程序设计很混乱,唯一正确的解决方案是修复程序设计。