我正在构建一个链表,这是列表项结构:
struct TListItemStruct
{
void* Value;
struct TListItemStruct* NextItem;
struct TListItemStruct* PrevItem;
};
typedef struct TListItemStruct TListItem;
typedef TListItem* PListItem;
我在几个功能中使用它,到目前为止看起来还不错。但是,当我定义以下变量时:
PListItem item;
我收到以下错误:
error C2275: 'PListItem' : illegal use of this type as an expression
这是为什么?定义指向结构的类型指针变量有什么问题?
编辑:这是更多的功能。这不起作用
BOOL RemoveItem(PListItem item)
{
// Verify
if (item == NULL)
{
return FALSE;
}
// Get prev and next items
PListItem prev;
prev = item->PrevItem;
//PListItem next = (PListItem)(item->NextItem);
...
但是,这有效:
BOOL RemoveItem(PListItem item)
{
PListItem prev;
// Verify
if (item == NULL)
{
return FALSE;
}
// Get prev and next items
prev = item->PrevItem;
//PListItem next = (PListItem)(item->NextItem);
...
我正在使用VS2012,也许这是一个标准的东西?在函数的开头声明变量?