所以我有这段代码:

 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中不能有相同名称的别名。

10-02 10:47
查看更多