質問: -p.x; return q; } ### 試したこと タグ名と構造体型を変えても発生する
回答: struct point rot(point p); ここの時点でstruct point ってなんですか?というエラーだとおもいます すみません、流石にもう少し具体的に書きますね。以下追記です まずtypedefとは既に定義されている型に,別の新しい名前をつけて定義することができるキーワードだということはご存知ですね? では2パターンの例を考えてみます。まずはタグ名を省略しなかった場合です。この例でいくと、struct pointという型に新しくpointと言う名前をつけています。この場合抜粋した一行では、戻り値の型と引数の型は同じになります。どういうことかというと、戻り値のほうは古い名前で、引数のほうは新しい名前で書いておられます。ただただ名前が違うだけなので正常に動作します。 もう1パターンのタグ名を省略した場合を考えてみます。この場合、そもそもstruct pointという名前の型が定義されていないのでエラーとなります。つまり、structをとっぱらえばうまく動作すると思います ただ、新しくpointと名前を定義されたのなら、そちらで統一してください。もしくはtypedefを使わずstruct pointで統一してください。でないと今回のようにややこしくなります