構造体の初期化が出来ません。(誤って解決を押してしまいました)
Posted: 2013年1月19日(土) 10:55
すいません、解決してないのに解決を押してしまいました。
重複となってしまい申し訳ありません。よろしければ前のトピックを削除しといていただくと嬉しいです。
お手数かけてすいません。
以下、「構造体の初期化が出来ません。」の最後の投稿の引用です。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
皆さまご回答ありがとうございます。
typedef宣言で定義が楽になるのは理解できるんです。
typedef宣言と構造体structは相性が良いですよね。
ですが、まだ
typedef struct a{ ~~~ }b;
b hoge;
と書く場合と、
typedef struct { ~~~ }b;
b hoge;
と書く場合の違いというか、前者を書く理由がいまひとつ分かりません。
どっちの例でも2行目は「struct」を省けるので楽になりますよね?
加えてどっちの例でも同じ構造を持った変数hogeが定義されてますよね。
両者のhogeの内容に違いはありませんよね?
わざわざ前者を使う例ってなんなのでしょうか。私には、前者はむしろややこしくしている感じがします。
この答えが、以下のコードについて soft屋様のご返答してくださった
>それだとstruct csという形名とCSと言う形名を持つことになりますが、変数の実体は定義されません。
だと思うんですけど、
「struct cs」という型名とはどういうことでしょうか?
csもCSもstruct宣言と同義になったというわけではないんでしょうか?
cs hoge;
CS hoge;
と書いた場合、何が違うのでしょう?
しつこくて申し訳ありません。
重複となってしまい申し訳ありません。よろしければ前のトピックを削除しといていただくと嬉しいです。
お手数かけてすいません。
以下、「構造体の初期化が出来ません。」の最後の投稿の引用です。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
皆さまご回答ありがとうございます。
typedef宣言で定義が楽になるのは理解できるんです。
typedef宣言と構造体structは相性が良いですよね。
ですが、まだ
typedef struct a{ ~~~ }b;
b hoge;
と書く場合と、
typedef struct { ~~~ }b;
b hoge;
と書く場合の違いというか、前者を書く理由がいまひとつ分かりません。
どっちの例でも2行目は「struct」を省けるので楽になりますよね?
加えてどっちの例でも同じ構造を持った変数hogeが定義されてますよね。
両者のhogeの内容に違いはありませんよね?
わざわざ前者を使う例ってなんなのでしょうか。私には、前者はむしろややこしくしている感じがします。
この答えが、以下のコードについて soft屋様のご返答してくださった
>それだとstruct csという形名とCSと言う形名を持つことになりますが、変数の実体は定義されません。
だと思うんですけど、
「struct cs」という型名とはどういうことでしょうか?
csもCSもstruct宣言と同義になったというわけではないんでしょうか?
cs hoge;
CS hoge;
と書いた場合、何が違うのでしょう?
しつこくて申し訳ありません。