参照の順序

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

参照の順序

#1

投稿記事 by » 15年前

struct A {
    B* b;
};

struct B {
    A* a;
};
初めまして。
C言語で上のようなデータ構造を実現したいのですが、どのように記述すれば良いでしょうか?
単純な事なのかも知れませんが、どなたかご教授下さい。

ひよこ

Re:参照の順序

#2

投稿記事 by ひよこ » 15年前

struct A;
struct B;
と仮の宣言?をすればいいと思います。

たかぎ

Re:参照の順序

#3

投稿記事 by たかぎ » 15年前

> C言語で

本当ですか?

Re:参照の順序

#4

投稿記事 by » 15年前

ひよこさんありがとうございます。一歩前に進みました。

では、
tyepdef struct _A {
PB pb;
} A, *PA;
typedef struct _B {
PA pa;
} B, *PB;
等のようにtypedefを使用した場合はどうしたら良いでしょうか?

structを記述せず定義しているのでC++ですね。
C++からプログラムに入ったのでCとC++の境界が自分の中で非常に曖昧になっていて申し訳ない。

たかぎ

Re:参照の順序

#5

投稿記事 by たかぎ » 15年前

これでどうでしょうか?

typedef struct A A, *PA;
typedef struct B B, *PB;

struct A {
PB pb;
};
struct B {
PA pa;
};

ちなみに、struct _A や struct _B のように、下線で始まって大文字が続く識別子を使うと未定義の動作になります。
http://www.kijineko.co.jp/tech/supersti ... score.html

> C++からプログラムに入ったのでCとC++の境界が自分の中で非常に曖昧になっていて申し訳ない。

↓こちらを参考にしてください。
http://www.kijineko.co.jp/tech/cpp2c

閉鎖

“C言語何でも質問掲示板” へ戻る