回答編集履歴
1
具体的な説明の追加
test
CHANGED
@@ -1,3 +1,19 @@
|
|
1
1
|
struct point rot(point p);
|
2
2
|
|
3
3
|
ここの時点でstruct point ってなんですか?というエラーだとおもいます
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
すみません、流石にもう少し具体的に書きますね。以下追記です
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
まずtypedefとは既に定義されている型に,別の新しい名前をつけて定義することができるキーワードだということはご存知ですね?
|
12
|
+
|
13
|
+
では2パターンの例を考えてみます。まずはタグ名を省略しなかった場合です。この例でいくと、struct pointという型に新しくpointと言う名前をつけています。この場合抜粋した一行では、戻り値の型と引数の型は同じになります。どういうことかというと、戻り値のほうは古い名前で、引数のほうは新しい名前で書いておられます。ただただ名前が違うだけなので正常に動作します。
|
14
|
+
|
15
|
+
もう1パターンのタグ名を省略した場合を考えてみます。この場合、そもそもstruct pointという名前の型が定義されていないのでエラーとなります。つまり、structをとっぱらえばうまく動作すると思います
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
ただ、新しくpointと名前を定義されたのなら、そちらで統一してください。もしくはtypedefを使わずstruct pointで統一してください。でないと今回のようにややこしくなります
|