回答編集履歴
2
追加
answer
CHANGED
@@ -14,4 +14,12 @@
|
|
14
14
|
|
15
15
|
Java等の今どきの言語では、全てのパスにreturnが無いとエラーになりますが、
|
16
16
|
C言語はそこまで面倒を見てくれないので、returnが無いと、滅茶苦茶な値を返してしまいます。
|
17
|
-
(レジスタに残ってるゴミデータが返ってくる)
|
17
|
+
(レジスタに残ってるゴミデータが返ってくる)
|
18
|
+
|
19
|
+
---
|
20
|
+
ちなみに、こう書いた場合は、最後にreturnが無くとも問題ありません。
|
21
|
+
Aか、Aでないか、以外のルートは存在しないからです。
|
22
|
+
```C
|
23
|
+
if(x==A) return 1;
|
24
|
+
else return 2;
|
25
|
+
```
|
1
修正
answer
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
if(x==B) return 2;
|
9
9
|
else if(x==C) return 3;
|
10
10
|
```
|
11
|
-
等と書いた場合、Dが来ると、どこにも引っかからずに関数の最後まで到達しますが、
|
11
|
+
等と書いた場合、AでもBでもCでもないDが来ると、どこにも引っかからずに関数の最後まで到達しますが、
|
12
12
|
そこには、return文は無いので、予期せぬ結果とreturnしてしまう可能性がある事を
|
13
13
|
示している警告です。
|
14
14
|
|