3
4

2 に答える 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

structtypedefだけでなく、のタグを提供する必要があります。

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 に答える