構造体、列挙体のタグ名についてお伺いできないでしょうか?

構造体、列挙体のタグ名についてお伺いできないでしょうか? typedef struct kozo { int a; int b; int c; } kozo_t; 例えば、構造体の場合、上記のような宣言を見るのですが、 kozoという名前をつけるのに何の意味があるのでしょうか? kozo_tという名前だけで問題ない気がしています。 ご教示願えないでしょうか?

C言語関連17閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

1

>kozoという名前をつけるのに何の意味があるのでしょうか 一部のエディタのアウトライン解析とか関数一覧では、kozoという名前が付いてない場合、その構造体の名前が出てこず、無名構造体とだけ表示されます なので、エディタへの便宜を図るために、kozoという名前を付けて表示させます

1人がナイス!しています

ThanksImg質問者からのお礼コメント

ご回答ありがとうございます。 質問が分かりづらかったかもしれませんが、 本回答が伺いたかったことに一番マッチしていると感じました。

お礼日時:1/1 11:45

その他の回答(2件)

0

C++言語で typedef class A{ ... }class_A; とかあまりしないのと同様に typedef struct kozo{ ... }kozo_t; ともあまりしないのでは ありませんか?(しかし結構 よく見る) というご質問ですね。 typedefを使うと、「わかりやす くなる」という意見もあるようで すが、型名と変数・関数名が紛らわ しくなるという意見もあるようです。 結局プログラマが「わかりやすくなる」 と判断した場合は、typedefするのでは ないでしょうか?

1

一つの習慣であるとして捉えると良いと思います。 typedef struct kozo { int a; int b; int c; struct kozo *d; } kozo_t; このような場合、タグ名が無いと困るので。 あと、 typedef struct { int a; int b; int c; } kozo_t; struct kozo_ex : kozo_t { }; これでエラーが出たこともあります。かなり前の古い C++ コンパイラでのお話になります。

1人がナイス!しています