-1

如果我想在不使用包含保护的情况下避免重新声明错误,那么依赖树必须是这样的基本规则:仅一棵或多棵树。

任何时候可以通过两种不同的方式联系到父母,就会发生违规行为?

例如:

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 有多个路径到同一个父级。

有没有办法让多个路径到同一个父级并且不会出现重新声明错误?

4

1 回答 1

0

研究这个问题一段时间后,似乎必要的图形形状不是树。基本上,只要图没有循环并且遵循一个基本规则,即任何给定父级只能有一条路径,依赖关系就会是干净的。因此,例如:

在此处输入图像描述

因此,在这个网络中,我们看到父母是共享的,孩子也可以共享,但没有任何地方可以从同一个孩子到任何给定父母的多条路线。形状的一个数学术语是不相交网络。在不相交的网络中,任何两条路径只能共享一个端点,而不能共享其他顶点/边。

于 2016-06-23T15:09:25.480 回答