C言語の設計ミスった危険な関数トップ10決めようぜ (215レス)
C言語の設計ミスった危険な関数トップ10決めようぜ http://mevius.5ch.net/test/read.cgi/tech/1574306624/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
47: デフォルトの名無しさん [sage] 2019/12/03(火) 19:14:24.81 ID:90Sp73uq >>44 残念ながらそうはなってないんだなw 狭く深くっていう世界だから 要するに田舎でな何をするにもオーバーヘッドが大きいってことな 今はネットでだいぶマシになったけどネット以前の情報収集考えたらアホでもわかる話 http://mevius.5ch.net/test/read.cgi/tech/1574306624/47
48: デフォルトの名無しさん [sage] 2019/12/08(日) 02:33:17.34 ID:aqWVKWA+ アホなデータ食わせるアホなやつのために堅牢な仕組みにする必要はない http://mevius.5ch.net/test/read.cgi/tech/1574306624/48
49: デフォルトの名無しさん [sage] 2019/12/11(水) 01:29:51.60 ID:7IDmuKiG >>41 元々は9bit http://mevius.5ch.net/test/read.cgi/tech/1574306624/49
50: デフォルトの名無しさん [] 2019/12/11(水) 06:55:08.36 ID:IbA4V9X0 >>46 メモリが640kバイトしか使えなかった頃からのものだしな http://mevius.5ch.net/test/read.cgi/tech/1574306624/50
51: デフォルトの名無しさん [sage] 2019/12/11(水) 07:59:10.55 ID:yA/FdCBI >>5 ストラトック http://mevius.5ch.net/test/read.cgi/tech/1574306624/51
52: デフォルトの名無しさん [sage] 2019/12/11(水) 15:20:43.27 ID:JkExA39E 大昔って端末やエディタなんかでも1行256とか1024バイト程度しか扱えなかったばず http://mevius.5ch.net/test/read.cgi/tech/1574306624/52
53: デフォルトの名無しさん [] 2019/12/11(水) 15:32:22.68 ID:8OP/pbId 256 の時代は割と長かった希ガス http://mevius.5ch.net/test/read.cgi/tech/1574306624/53
54: デフォルトの名無しさん [sage] 2019/12/13(金) 06:37:32.10 ID:o1f1J6fH 昔は1行の長さを先に決めてファイルをクリエイトしました 途中で変更はできません http://mevius.5ch.net/test/read.cgi/tech/1574306624/54
55: デフォルトの名無しさん [] 2019/12/14(土) 13:26:55.02 ID:TlZt0bii 関数そのものじゃないが breakにラベル指定出来なかったのは設計ミスやろ http://mevius.5ch.net/test/read.cgi/tech/1574306624/55
56: デフォルトの名無しさん [sage] 2019/12/14(土) 13:54:03.80 ID:JwYnIOEa その為のgoto http://mevius.5ch.net/test/read.cgi/tech/1574306624/56
57: デフォルトの名無しさん [] 2019/12/14(土) 22:43:29.04 ID:8CJijD11 gotoはラベルのスコープが広いから使いにくい。ループごとに別のラベル名を 付けないといけないし、ラベル名を別のループ用のものと書き間違えると 意図しない所へ飛んで行ってしまう。スパゲッティでバグの元。 ループにラベルを付ければ、スコープがそのループ内に限定され、そのループの 外にある別のループに同じラベル名を付けることができるから、書きやすく 読みやすい。例えば、こんな感じ。 for @outer (i = 1; i <= 3; i++) { for (j = 1; j <= 3; j++)
{ printf("%d, %d\n", i, j); if (i * j > 3) break @outer; } } for @outer (i = 1; i <= 5; i++) { for (j = 1; j <= 5; j++) { printf("%d, %d\n", i, j); if (i * j > 5) break @outer; } } http://mevius.5ch.net/test/read.cgi/tech/1574306624/57
58: デフォルトの名無しさん [sage] 2019/12/14(土) 22:45:51.60 ID:JwYnIOEa 単純に breakする数を指定出来るだけで良い http://mevius.5ch.net/test/read.cgi/tech/1574306624/58
59: デフォルトの名無しさん [sage] 2019/12/15(日) 06:50:28.91 ID:6aWNd1w0 >>58 ネストの数を数えるとか最低だと思う http://mevius.5ch.net/test/read.cgi/tech/1574306624/59
60: デフォルトの名無しさん [sage] 2019/12/15(日) 07:00:06.17 ID:a0yEED8b 1000行のコードでbreak 7;とかされても、 どこに抜けるかわからんよな! http://mevius.5ch.net/test/read.cgi/tech/1574306624/60
61: デフォルトの名無しさん [sage] 2019/12/15(日) 09:51:38.77 ID:5sPbacoo ネストの数がわからないような巨大な構造は それだけで最低だ そんなんだと名前付きループにした所で @outerなんて名前が使い回されて 同じ名前のループがネストされて それこそ難読コードになる それならユニークなラベルによるgotoの方が良い >>57くらいのループなら break 2; は名前を考える手間が無くて楽だし 見にくくもない http://mevius.5ch.net/test/read.cgi/tech/1574306624/61
62: デフォルトの名無しさん [sage] 2019/12/15(日) 09:57:28.64 ID:5sPbacoo とは書いたけど どっちも有るならどっちも欲しい どっちかだけげならbreak 2;の方が欲しい って感じ http://mevius.5ch.net/test/read.cgi/tech/1574306624/62
63: デフォルトの名無しさん [sage] 2019/12/15(日) 10:52:04.89 ID:6aWNd1w0 >>61 > そんなんだと名前付きループにした所で > @outerなんて名前が使い回されて > 同じ名前のループがネストされて > それこそ難読コードになる 無能の妄想w http://mevius.5ch.net/test/read.cgi/tech/1574306624/63
64: デフォルトの名無しさん [sage] 2019/12/15(日) 11:05:09.82 ID:5sPbacoo ループの先頭、ループの終わり、break部分 3箇所見ないとダメってだけでダメな仕様 http://mevius.5ch.net/test/read.cgi/tech/1574306624/64
65: デフォルトの名無しさん [sage] 2019/12/15(日) 12:32:17.60 ID:bDjAMWVj >>64 なぜか自分の前提は > >>57くらいのループなら なのにラベルにした途端にループの頭とbreakとループの終わりが一瞥でわからないとかアホすぎ http://mevius.5ch.net/test/read.cgi/tech/1574306624/65
66: デフォルトの名無しさん [sage] 2019/12/15(日) 12:36:08.74 ID:5sPbacoo 大きければgoto 小さければbreak n http://mevius.5ch.net/test/read.cgi/tech/1574306624/66
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 149 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s