コンパイラ「はいエラーね。関数なんだからちゃんと値返せよ」 俺「は?」

1 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:02:25.422 ID:6L7FHuXmp.net
俺「は?」

int max(int m,int n){
if(m>n){
return m
} else{
return n
}
}

48 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:21:51.282 ID:6L7FHuXmp.net

BSだから多分.netかな

4 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:04:29.293 ID:piWLHde00.net

型が

46 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:21:02.814 ID:Lhts8F7Zd.net

>>38
C#なら大半が.NET付属のコンパイラじゃね
Monoはしらん

50 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:23:38.109 ID:UXl0HnC4d.net

gccは通った
それくらいなら三項演算子使うけど

42 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:20:06.382 ID:Kq3DoHIU0.net

お前が使ってるコンパイラゴミじゃね?なんでそんなもん使ってんの?

54 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:26:04.956 ID:8MDWUu1p0.net

>>51
ただし、

if ( m > n ) {
 return m;
} else if ( m <= n ) {
 return n;
}

だと絶対にどっちかのreturnをするはずなのにエラーになった

55 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:26:13.620 ID:8rM6CGe20.net

中にreturnあるの嫌い

11 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:08:19.471 ID:yvkb/E+5r.net

>>5
これ

19 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:11:09.408 ID:9luEajNsa.net

つーかさ
elseいらなくね?

16 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:09:31.363 ID:6L7FHuXmp.net

ああ、セミコロン抜けはスルーしてくれ

16 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:09:31.363 ID:6L7FHuXmp.net

ああ、セミコロン抜けはスルーしてくれ

8 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:06:56.128 ID:hJPdv2cha.net

mとnを宣言?

57 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:28:57.036 ID:6L7FHuXmp.net

>>54
なるほど
そのコンパイラはelseまで行かないと内容関係無くエラーになるのかね

27 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:14:52.121 ID:wR/60r8Yp.net

>>24
えるすリターンの下にリターン0かいとけばいいの?

53 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:25:03.623 ID:UXl0HnC4d.net

ごめん、clangだった

60 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:35:58.866 ID:8MDWUu1p0.net

>>57
流石に1800京通り全パターンのチェックはできないし、
論理的に全パターンを網羅できてるかどうかの判断までやろうとすると際限なくなるからやらないのだろう

if ( m > n ) {
 return m;
} else if ( true ) {
 return n;
}

くらいに自明だと、少なくともVS2017では完全網羅扱いしてくれる

9 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:07:42.420 ID:obCoe63A0.net

これだめなんか

5 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:05:09.309 ID:9luEajNsa.net

;

17 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:09:37.436 ID:eEHNlC0Wa.net

とりあえずreturn null入れといて

39 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:19:31.213 ID:YuIFJFmh0.net

コンパイラー何使ってんの?

65 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:41:10.139 ID:1KGmM3xYa.net

コンパイラ「未初期化変数あるぞ」

75 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:56:06.671 ID:nC3dxlDv0.net

>>44
普通とは…

52 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:24:18.851 ID:jPDfJ4nQ0.net

結局コンパイラのバージョンとか名前も晒さないと「ひとそれぞれ」としか言えないという

56 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:26:28.689 ID:HOP3gwc80.net

ちなみにこんなのはちゃんと警告出します

% cat max2.c
int max(int m,int n){
if (m>n) {
return m;
}
}
% cc -W -Wall -c max2.c
max2.c:5:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
1 warning generated.
%

26 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:14:27.357 ID:6L7FHuXmp.net

>>23
C#

>>25
いやコンパイルエラー

71 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:51:30.736 ID:8MDWUu1p0.net

>>64
解決おめでとう

>>66
C#的には、適当な例外をスローするコードにしとくのがよさそうではある

3 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:03:27.454 ID:NtvvT1kfa.net

値入れろよ

36 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:18:26.034 ID:HOP3gwc80.net

ちなみにclangでコンパイルしてみたけど何も言われずに通ったよ

28 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:14:58.542 ID:UXl0HnC4d.net

コンパイラ「そんなことまで考えてられるか」
考えてくれるやつもあるけど

61 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:38:26.252 ID:G8cOJxKN0.net

>>53
だったって何
どゆこと?

44 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:20:26.602 ID:uztTIIN8M.net

else ifで普通にいけるくね?

23 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:13:36.390 ID:Lhts8F7Zd.net

言語は?

77 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:59:48.721 ID:8MDWUu1p0.net

なおVS2010の時点ですらちゃんと通ったことをお伝えしておきます
VS2003とかの頃だともしかしたらダメだったのかもしれないが、流石にそんな古いのは知ったこっちゃない

74 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:54:40.123 ID:7HtoM2/D0.net

ますます謎

14 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:09:23.763 ID:OY6S+8Iz0.net

何言語

34 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:18:11.835 ID:6L7FHuXmp.net

>>30
int型の関数なのでちゃんと値返しましょうってメッセージ出るぞ

2 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:02:55.584 ID:AHzm4QcDp.net

コンバインかと

24 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:13:36.783 ID:6L7FHuXmp.net

35 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:18:18.853 ID:Lhts8F7Zd.net

>>26
手元のPCでコンパイルしたら通ったぞ?

30 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:16:01.534 ID:8MDWUu1p0.net

>>26
そんな事ないが
別のとこでエラー起こしてるんだろ

64 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:40:23.132 ID:6L7FHuXmp.net

>>60
確かに全パターン網羅とか重すぎるわな
あとなんか申し訳ないけど今やったら普通にコンパイルできたわ
だいぶ前にこういうのに遭遇したの思い出してスレ立てたけど多分>>54みたいなパターンのエラーだったんだと思う
ちなみに俺も>>54はエラーになった

76 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:59:47.695 ID:HOP3gwc80.net

ちょっともやっとしてる
あとC言語のつもりで書いてたけどC#だったんだねスマン

66 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:41:15.879 ID:HOP3gwc80.net

VSは使ったこと無いけど関数末尾に
/* NOTREACHED */
このコメント書くとエラー無くなるかも?

69 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:44:07.628 ID:6L7FHuXmp.net

>>66
普通にコンパイルできてた
すまぬ

49 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:22:19.267 ID:6L7FHuXmp.net

誤字
VS

6 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:05:32.886 ID:514ytbfaa.net

のーみそこねこね

10 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:08:01.460 ID:6L7FHuXmp.net

どの場合でも値返してるのに最外ブロックでも戻り値書かないと関数として定義できない謎

21 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:11:46.781 ID:y4HCDuUdd.net

無駄が多い

72 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:52:13.358 ID:HOP3gwc80.net

>>69
ん?最初のコードでもコンパイル出来てたの?

18 :以下、?ちゃんねるからVIPがお送りします:2018/08/10(金) 17:09:54.156 ID:Kq3DoHIU0.net

いや書けよスルーしてくれじゃなくて

参考になったらSNSでシェアお願いします!

レスを投稿する(名前省略可)

この記事を読んだ方へのおすすめ

最近のコメント

コメントはまだありません
ページTOPへ↑