我在 .c 文件中有这个结构:
struct entry {
int position;
int length;
struct entry *node;
};
现在,我怎样才能将这个结构 layout 的范围限制在主机文件中,这样当在另一个文件中为新结构 layout 使用相同的名称时,我没有收到“重新定义”错误?
我试过在struct之前使用static,但似乎没有用(我也说不通)。顺便说一句,this question对我来说似乎无效,因为在跨链接文件(使用 MinGW)复制 结构条目 时出现“重新定义”错误。
最佳答案
您不会收到重定义错误。类型是翻译单元 的本地类型,没有任何可见性。只有函数和数据对象具有可见性。
如果您遇到重定义错误,您必须在 header 或其他包含的文件中使用该名称,以便它最终出现在同一个翻译单元中。
关于C - 限制结构范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11158888/