所以我有这段代码:
typedef struct node link;
struct node {int v; link *next;};
struct graph{int V; int E; link **adj;};
在第一行中,出现错误“将链接重新定义为另一种符号”。
在第二行和第三行中,我得到“未知类型名称”链接”。
有任何想法吗?
编辑:我将名称链接更改为其他名称,并且可以正常工作,尽管我的项目中没有其他名称的链接。
最佳答案
如果您使用的是POSIX平台(例如Linux或OSX),则有一个名为link
的系统功能。
结构名称(如struct node
)位于单独的名称空间中(这就是为什么可以执行typedef struct node node;
的原因),但是类型别名与其他所有名称都位于相同的名称空间中,这意味着如果您拥有函数link
中不能有相同名称的别名。