私はリンクされたリストを構築しています.これはリストアイテムの構造体です:
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を使用していますが、おそらくそれは標準的なものですか?関数の先頭で vars を宣言するには?