C言語の設計ミスった危険な関数トップ10決めようぜ (215レス)
C言語の設計ミスった危険な関数トップ10決めようぜ http://mevius.5ch.net/test/read.cgi/tech/1574306624/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
79: デフォルトの名無しさん [sage] 2019/12/16(月) 13:28:49.41 ID:ZZ8St2Js >>72 >>73 みたいなのって gotoの使いどころだと思うんだけだ gotoを使わない人はどう書いてるの? 特に >>57 の答えを聞いてみたい http://mevius.5ch.net/test/read.cgi/tech/1574306624/79
80: デフォルトの名無しさん [sage] 2019/12/16(月) 15:17:28.75 ID:arH1mwfY void print_data(void) { for (i = 1; i <= 3; i++) { for (j = 1; j <= 3; j++) { printf("%d, %d\n", i, j); if (i * j > 3) return; } } } print_data(); printf("complete\n"); http://mevius.5ch.net/test/read.cgi/tech/1574306624/80
81: デフォルトの名無しさん [sage] 2019/12/16(月) 16:34:59.64 ID:/0yHEQmX outer より後に処理が続く場合は? http://mevius.5ch.net/test/read.cgi/tech/1574306624/81
82: デフォルトの名無しさん [sage] 2019/12/16(月) 16:51:44.02 ID:arH1mwfY void print_data(void) { for (i = 1; i <= 3; i++) { for (j = 1; j <= 3; j++) { printf("%d, %d\n", i, j); if (i * j > 3) return; } } } print_data(); outer より後に処理が続く場合 printf("complete\n"); http://mevius.5ch.net/test/read.cgi/tech/1574306624/82
83: デフォルトの名無しさん [sage] 2019/12/16(月) 16:55:03.26 ID:arH1mwfY "短い処理"をいちいち関数にしなくて済むから、break 2とかはあってもいいが、 長い処理は関数にしてないとろくにテストできないんだからgotoなんていらない http://mevius.5ch.net/test/read.cgi/tech/1574306624/83
84: デフォルトの名無しさん [sage] 2019/12/16(月) 19:03:13.17 ID:4DgO9d+i じゃあ>>57もいらないね http://mevius.5ch.net/test/read.cgi/tech/1574306624/84
85: デフォルトの名無しさん [sage] 2019/12/16(月) 19:09:09.12 ID:lsrBHsJG gotoの基本的な使い方くらい知っておいた方が良いかと ループを抜ける為だけに関数を分けないといけなくなるし 挙げ句の果てに言語の欠陥とか言い出す http://mevius.5ch.net/test/read.cgi/tech/1574306624/85
86: デフォルトの名無しさん [sage] 2019/12/16(月) 20:06:51.00 ID:3ha1TSe5 今のC言語ではネストしたループから抜けるのはフラグを使うかgotoしかないからたいていgoto使ってるけどgotoなんて野蛮なものはできたら使いたくないから他の言語で実装されてるラベル付きbreakなりレベル付きbreakが欲しいって話だろ 今更gotoの基本的な使い方ガーとか言ってる奴はどんだけ低レベルなんだよw http://mevius.5ch.net/test/read.cgi/tech/1574306624/86
87: デフォルトの名無しさん [sage] 2019/12/16(月) 20:09:28.82 ID:xr9KOlE0 あれ? returnで抜ける為に関数に分けるんじゃなかったの? http://mevius.5ch.net/test/read.cgi/tech/1574306624/87
88: デフォルトの名無しさん [sage] 2019/12/16(月) 20:21:09.65 ID:xr9KOlE0 gotoは野蛮とかいう歪んだ教育のせいで わざわざ変数を定義したりわざわざ関数を分けたりして わざわざ見にくいコードにしちゃう 生でポインタを扱う野蛮なC言語なんか使わないで 上品な言語を使った方が良いよ http://mevius.5ch.net/test/read.cgi/tech/1574306624/88
89: デフォルトの名無しさん [sage] 2019/12/16(月) 20:28:02.60 ID:jL52ryYk gotoじゃなくてgodowntoなら誰も文句言わなかった http://mevius.5ch.net/test/read.cgi/tech/1574306624/89
90: デフォルトの名無しさん [sage] 2019/12/16(月) 20:47:58.36 ID:LjjtFzBx 自分は小規模な字句解析みたいなのでもgoto使うことがある。 ラベルで状態を表してgotoで遷移する。 goto使わなかったら状態を変数に入れて、 ループの中でswitchで場合分けするようなコードになって辛い。 http://mevius.5ch.net/test/read.cgi/tech/1574306624/90
91: デフォルトの名無しさん [sage] 2019/12/16(月) 20:52:55.59 ID:DbnQVwfE ループの中のswitchでループを抜けるのに gotoを使うんじゃ? http://mevius.5ch.net/test/read.cgi/tech/1574306624/91
92: デフォルトの名無しさん [sage] 2019/12/16(月) 21:41:34.22 ID:wRV+mRkt 次の状態を返す関数ポインタでループすればいんじゃないの? http://mevius.5ch.net/test/read.cgi/tech/1574306624/92
93: デフォルトの名無しさん [sage] 2019/12/16(月) 21:45:33.24 ID:jhycq5nX そんな野蛮なことはしません http://mevius.5ch.net/test/read.cgi/tech/1574306624/93
94: デフォルトの名無しさん [sage] 2019/12/16(月) 22:12:14.62 ID:arH1mwfY >>87 returnで抜けるためというか、 1. gotoで抜けたい 2. 関数にするか 3. あ、そもそもコードが複雑なんだな 4. 関数にして正解だった こんな感じかな。 gotoで抜けたいと思う=コードが複雑になってるという警鐘だと思ってる。 http://mevius.5ch.net/test/read.cgi/tech/1574306624/94
95: デフォルトの名無しさん [sage] 2019/12/16(月) 22:22:18.57 ID:xr9KOlE0 で>>82みたいな意味不明な関数の分け方をすると >>57は、より複雑な記述をしたいっていう主張だし gotoに親を殺された人の言うことは支離滅裂 理由が後付けだからそうなる http://mevius.5ch.net/test/read.cgi/tech/1574306624/95
96: デフォルトの名無しさん [sage] 2019/12/16(月) 22:27:34.28 ID:arH1mwfY > で>>82みたいな意味不明な関数の分け方をすると なんで意味不明? そもそもその処理に意味をもたせてから言おうよw 処理に意味をもたせると、関数にしたほうが良いと思うからさ http://mevius.5ch.net/test/read.cgi/tech/1574306624/96
97: デフォルトの名無しさん [sage] 2019/12/16(月) 22:32:01.57 ID:arH1mwfY > 理由が後付けだからそうなる 質問の方が先なのに、理由を先に言えるわけがないw Q. 多重ループから抜けるのに、gotoは必要ですか? A. 必要ありません。多重ループが必要になるぐらい複雑なら関数にしますから これが普通だから、後付にはならないよね。 http://mevius.5ch.net/test/read.cgi/tech/1574306624/97
98: デフォルトの名無しさん [sage] 2019/12/16(月) 22:37:09.13 ID:xr9KOlE0 じゃ>>57も当然不要ですね http://mevius.5ch.net/test/read.cgi/tech/1574306624/98
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 117 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s