【发布时间】:2012-06-24 21:52:17
【问题描述】:
我在 .c 文件中有这个结构:
struct entry {
int position;
int length;
struct entry *node;
};
现在,如何将这个结构 layout 的范围限制在主机文件中,以便在另一个文件中为新结构 layout 使用相同名称时,我没有收到“重新定义”错误?
我尝试在struct之前使用static,但似乎没有用(我也没有意义)。顺便说一句,this question 对我来说似乎无效,因为在跨链接文件(使用 MinGW)复制 stuct 条目 时出现“重新定义”错误。
【问题讨论】:
-
当你尝试编译/链接你的程序时,你能显示确切的错误信息吗
-
错误:重新定义“结构条目”。这是因为我将文件包含到另一个使用相同名称的文件中。将设计与实现隔离似乎是一个逻辑错误,其中翻译单元只需要通过头文件进行通信,而不是直接。