質問する
575 次
2 に答える
3
変更する必要があります
typedef struct {
に
typedef struct Cell {
はタグなしのtypedef struct { /* ... */ } Cell;
構造体を定義します。事実上、構造体自体には、直接参照できる名前がありません。名前Cell
は、この名前のない構造体を参照するaの名前ですtypedef
。
struct Cell
を宣言するために使用する場合next
、それは「という名前の構造体」を意味しCell
ます。ただし、Cell
定義した構造体には名前がないため、という名前の構造体はありません。
構造体に名前を付ける(タグを付ける)ことにより、struct Cell
表記法を使用して構造体を参照できます。
于 2012-07-21T20:34:18.623 に答える
2
struct
typedefだけでなく、のタグを提供する必要があります。
typedef struct Cell {
element_type e;
struct Cell *next;
} Cell,*List;
そこにタグがないと、struct Cell *
は未定義であり、エラーが発生します。
このtypedefの構造を理解することは非常に役立ちます。これは、2つの宣言の組み合わせです。
struct Cell {
element_type e;
struct Cell *next;
};
と
typedef struct Cell Cell;
タグがないと、タグなしになりtypedef
ますstruct
。
于 2012-07-21T20:34:26.247 に答える