ネストされた構造について学んでいて、次のコードに出くわしました:
// Stack.h
#ifndef STACK_H
#define STACK_H
struct Stack{
struct Link{
void* data;
Link* next;
void initialize(void* dat, Link* nxt);
}* head;
void initialize();
void push(void* dat);
void* peek();
void* pop();
void cleanup();
};
#endif // STACK_H
Link 構造は Stack のスコープ内にあり、Link にアクセスするには Stack::Link を使用する必要があります。
Link 構造体を閉じるために } の後に宣言されているポインター ヘッドについて少し混乱しています。
これは、Stack スコープ内に head という名前のリンク ポインター変数があるということですか?
ヘッド ポインターを次のように定義すると、どのような効果がありますか。
};
Link* head;
対
}* head; //as per the code above?