【问题标题】:forward declaration not working , does not have a type error前向声明不起作用,没有类型错误
【发布时间】:2013-08-02 05:59:01
【问题描述】:

我使用前向声明但仍然得到错误:'link'没有命名类型。为什么?

struct link;

struct node
{
    link *head_link;            <------- this is the error location
    node *next_node;
};

struct link
{
    link *next_link;
    node *connect_node;
};

【问题讨论】:

    标签: forward-declaration circular-dependency


    【解决方案1】:

    你声明了一个叫做struct link的类型,它不只是link,所以写:

    struct node
    {
        struct link *head_link;
        struct node *next_node;
    };
    

    或者,使用typedef 声明一个称为链接的类型。

    【讨论】:

    • 所以我将前向声明更改为 struct node;并让真正的结构链接声明出现在真正的结构节点声明之前,它仍然给我同样的错误:“链接”没有命名类型。它不会给我的“节点”错误吗?另一方面,我如何才能 typedef 前向声明,以便保留名称链接和节点?
    • 我用 'edge' 替换了所有单词 'link' 并且它没有问题地遵守。我猜链接是一个我不知道的关键字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多