答えて
はい、これではい
struct list {
int value;
struct list *next;
};
または
typedef struct list
{
int value;
struct list *next;
} list;
をsyntaxisていますが、構造体自体与える必要があるので、typedefでは、後文でまで発生しません。名。例えば。
struct listLink {
struct listLink *next;
struct listLink *prev;
void *data;
};
そして、あなたがstruct listLink <whatever>
として、各インスタンスを宣言する必要がしたくない場合は、typedefでのそれをラップすることができます。第osgrx与えられた構文を持つ
この可能。プラス、これは、リンクされたリストと呼ばれる:http://www.ehow.com/how_2056292_create-linked-list-c.html
はそれを定義するためのtypedefを使用し、その後、名前を選択します。リンクされているすべてのリストには、1つの変数しかない場合でも構造体が必要です。
typedef struct product_data PRODUCT_DATA;
構造体を定義します。それははっきりから構造体を分離
typedef struct listLink listLink ;
struct listLink{
listLink *next;
listLink *prev;
void *data;
} ;
とメンバーと変数:私はこのバージョンを好む
struct product_data {
int product_code;
int product_size;
PRODUCT_DATA *next;
};
私は血まみれのリンクリストが何であるかを知っている:P –
はあなたを思えませんあなたはそのような質問をするときに行う;) – Oleiade
:最後の要素はあなただけで定義され、「次」という名前の型へのポインタでなければなりません。彼らは別の名前空間を持っているので、構造体とtypedefの両方に同じ名前を使用して
、struct listLink, listLink
は、問題ではありません。
- 1. C++構造体オブジェクト型エラーへのポインタ
- 2. 構造体へのポインタへのポインタ
- 3. 構造体へのポインタへのポインタ
- 4. 構造体メンバへのポインタ
- 5. 構造体へのポインタ
- 6. 構造体のポインタへのポインタ
- 7. 構造体のポインタからの構造体の値へのアクセス
- 8. 構造体の配列内の構造体へのポインタ
- 9. 異なる構造体内の構造体へのポインタ。 C
- 10. C#:構造体内の構造体へのポインタ
- 11. C:構造体内の構造体要素へのポインタ
- 12. C構造体、構造体へのポインタ、適切な初期化
- 13. 構造体へのポインタを持つ構造体:ベスト・アプローチ
- 14. 構造体にポインタを持つ構造体へのポインタの配列
- 15. Cの構造体へのポインタのrealloc()
- 16. C++ - 構造体のクラスへのポインタ?
- 17. 構造体へのvoidポインタのキャスト
- 18. C別の構造体へのポインタ
- 19. 構造体の配列へのポインタ
- 20. 構造体へのポインタのC配列
- 21. マイクロコントローラ上のアクセスレジスタへの構造体ポインタ?
- 22. Go - ポインタ構造体のフィールドへのアクセス
- 23. 構造体のメンバ変数への(通常の)ポインタを構造体全体へのポインタに変換する
- 24. C.構造体へのポインタの逆引きによる構造体へのポインタへのアクセス
- 25. 構造体へのポインタの配列へのポインタを返す
- 26. C - ポインタの配列への構造体へのポインタ
- 27. 構造体へのポインタの配列へのポインタ
- 28. Cエラー:不完全な型へのポインタ逆参照、構造体
- 29. Rubymotionと構造体へのポインタ
- 30. 関数へのポインタ構造体?
tm1rbtが経験した初期混乱が構造体をtypedeff'ingしないための古典的な引数です。クライアントコードで 'struct listLink'を書くことはあまり面倒ではありません。 typedefを持つことは難しく、まったく必要ありません。 –
関連:[構造体の定義対構造体のtypedef](http://stackoverflow.com/questions/1675351/typedef-struct-vs-struct-definitions) – styfle