如果我想在不使用包含保护的情况下避免重新声明错误,那么依赖关系树必须遵循的基本规则是:仅限一个或多个树。
任何时候父母可以通过两种不同的方式到达,那么就会发生违规行为吗?
例如:
declarations.h包含string.h
data.h包括declarations.h
data.c包括data.h
ui.c包括data.h和string.h
这会产生重新声明错误,因为ui.c和包含string.h两种不同的方式:直接和通过data.h.因此,该结构不是树,因为ui.c具有到同一父节点的多条路径。
有没有办法让同一个父级有多条路径而不会出现重新声明错误?