C言語の設計ミスった危険な関数トップ10決めようぜ (215レス)
C言語の設計ミスった危険な関数トップ10決めようぜ http://mevius.5ch.net/test/read.cgi/tech/1574306624/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
73: デフォルトの名無しさん [sage] 2019/12/15(日) 18:58:38.98 ID:5sPbacoo for (i = 1; i <= 3; i++) { for (j = 1; j <= 3; j++) { printf("%d, %d\n", i, j); if (i * j > 3) goto outer; } } printf("complete\n"); outer:; http://mevius.5ch.net/test/read.cgi/tech/1574306624/73
74: デフォルトの名無しさん [sage] 2019/12/15(日) 19:01:19.97 ID:5sPbacoo わざわざ言語拡張しなくても >>57以上の事が実現出来る http://mevius.5ch.net/test/read.cgi/tech/1574306624/74
75: デフォルトの名無しさん [sage] 2019/12/16(月) 09:05:52.89 ID:AI1GDY0I ラベルのスコープを狭くしたいという話のようだから マクロの中で使ってこそ真価を発揮するんじゃないかな。 フル仕様のパースが必要というわけではなく、かなり手抜きできそうではある。 あれば便利というのは否定しないが、C でそこまで必要かというと… http://mevius.5ch.net/test/read.cgi/tech/1574306624/75
76: デフォルトの名無しさん [] 2019/12/16(月) 12:33:03.93 ID:0jmxiGrg { goto hoge; hoge:; } { goto hoge; hoge:; } これで二重になってたら困るしある意味なってなくても困るな http://mevius.5ch.net/test/read.cgi/tech/1574306624/76
77: デフォルトの名無しさん [sage] 2019/12/16(月) 13:21:05.83 ID:ZZ8St2Js マクロで二重以上のループってのもなかなか考えづらいなあ 一応、ラベル名をパラメータとする手もある 使う側のコストを考えるとgotoの為にパラメータを増やさないよな gotoを使わない主義者がよくやってるように 余分な変数を使って実装するんだろうね http://mevius.5ch.net/test/read.cgi/tech/1574306624/77
78: デフォルトの名無しさん [sage] 2019/12/16(月) 13:23:11.26 ID:ZZ8St2Js アセンブラだとマクロローカルラベルってのがあったりする ラベルを頻繁に使うので あと @@/@b/@fのように、 直近のラベルを指定する仕組みもある http://mevius.5ch.net/test/read.cgi/tech/1574306624/78
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
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 123 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s