C ++ struct未声明此范围

时间:2017-04-20 05:10:17

标签: c++ struct

使用类似链接列表的结构会产生问题。 当我声明2个值(我的结构)时, 它返回错误:

  

此VALUE_NAME未声明此范围

这是来源的一部分。

struct _node
{
    int val;
    _node* prev;
    _node* next;
};
typedef struct _node node;

node* HEAD;

void deleteALLNode()
{
    node* node = HEAD;
    node* _tmp;

//
// here _tmp value return error
//
}

2 个答案:

答案 0 :(得分:1)

你不能将你的变量命名为同名的类型(你可以一次,但是你不能再使用没有编译错误的类型)。只需将node* node = HEAD;变量的名称更改为其他名称,例如node* pNode = HEAD;

答案 1 :(得分:-2)

如果是C ++,您可以直接使用_node,而不需要typedeftypedef结构是C风格。

struct _node
{
    int val;
    _node* prev;
    _node* next;
};

_node* HEAD;

void deleteALLNode()
{
    _node* node = HEAD;
    _node* _tmp;
}