C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
前
C言語なら俺に聞け 146
https://mevius.5ch.net/test/read.cgi/tech/1525031257/
C言語なら俺に聞け 147
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/08/16(木) 23:36:02.22ID:fOCSKLtw325デフォルトの名無しさん
2018/08/24(金) 19:30:09.95ID:1mvArulW >>322
それがdo-while構造に最適化してるってことでは?
それがdo-while構造に最適化してるってことでは?
326デフォルトの名無しさん
2018/08/24(金) 19:37:04.31ID:C/3CctmU >>323
C言語のソースと直接対応させるならそのほうがその方が素直といえば素直だけどね
条件分岐命令はジャンプ範囲に制限があることがある(-128〜+127byte程度)ので下手すれば多段ジャンプを強いられることがある
アセンブラレベルでギリギリの調整をするときはループ構造が制約されることもあるよ
C言語のソースと直接対応させるならそのほうがその方が素直といえば素直だけどね
条件分岐命令はジャンプ範囲に制限があることがある(-128〜+127byte程度)ので下手すれば多段ジャンプを強いられることがある
アセンブラレベルでギリギリの調整をするときはループ構造が制約されることもあるよ
327デフォルトの名無しさん
2018/08/24(金) 19:50:21.18ID:rXR3rzpw 条件分岐で飛び先を相対で1バイトで指定しなければならないがそれ以上飛ばしたいなら逆の条件で無条件ジャンプによるループを抜けるようにすれば良いだけでは?
328デフォルトの名無しさん
2018/08/24(金) 19:52:23.26ID:s18ZTF9u >>324
マジかよ
マジかよ
329デフォルトの名無しさん
2018/08/24(金) 19:59:34.12ID:ZkSPfVdV330デフォルトの名無しさん
2018/08/24(金) 19:59:55.12ID:C/3CctmU >>327
その方が適切な場合であればそうする
結局のところコンパイラの吐き出したバイナリをアセンブラでチューニングするような状況だと少しでも所要クロックが少なく命令バイト長が短くなるようにロジックを弄るんだよ
その方が適切な場合であればそうする
結局のところコンパイラの吐き出したバイナリをアセンブラでチューニングするような状況だと少しでも所要クロックが少なく命令バイト長が短くなるようにロジックを弄るんだよ
331デフォルトの名無しさん
2018/08/24(金) 20:05:00.35ID:s18ZTF9u ぼくのコードを評価してください
https://ideone.com/YEOWVY
https://ideone.com/YEOWVY
332デフォルトの名無しさん
2018/08/24(金) 20:11:20.96ID:ZkSPfVdV >>331
趣味の押し付け合いを望んでる?
趣味の押し付け合いを望んでる?
333デフォルトの名無しさん
2018/08/24(金) 20:11:35.07ID:s18ZTF9u >>332
はい
はい
334デフォルトの名無しさん
2018/08/24(金) 20:13:15.06ID:YufcJqyf いや、後ろにあると見づらいだろ
335デフォルトの名無しさん
2018/08/24(金) 20:13:19.64ID:ZkSPfVdV 弱すぎて話にならん
336デフォルトの名無しさん
2018/08/24(金) 20:15:18.17ID:dK+ILFnq337デフォルトの名無しさん
2018/08/24(金) 20:18:15.07ID:s18ZTF9u >>336
なるほど
なるほど
338デフォルトの名無しさん
2018/08/24(金) 20:18:52.05ID:s18ZTF9u >>335
コーディングを評価してください
コーディングを評価してください
339デフォルトの名無しさん
2018/08/24(金) 20:21:05.45ID:ZlD+iWMs コメントする必要がないのが100点満点なんだが
340デフォルトの名無しさん
2018/08/24(金) 20:27:27.38ID:rXR3rzpw これはダメだ。もう何を言っても無駄だろう。
と思わせれば100点である、と。
と思わせれば100点である、と。
341デフォルトの名無しさん
2018/08/24(金) 20:30:03.18ID:QHdFlAyZ >>331
ネスト不快
ネスト不快
342デフォルトの名無しさん
2018/08/24(金) 20:33:17.73ID:s18ZTF9u >>341
なるほど
なるほど
343デフォルトの名無しさん
2018/08/24(金) 21:19:21.07ID:ZkSPfVdV 関数分け
いまいち
STATE *state
const でいいところもconstが無い
COL/ROW
名前がサイズじゃなくて位置っぽい
board[x][y]
board[y][x]の方が良いことあるかも
key
ifの羅列よりもswitch case
ways
static constをつけよう
directions
return で8個orしてるのがいやだ
名前
規模のわりに名前が長い
srand
なんで何回もよぶ?
いまいち
STATE *state
const でいいところもconstが無い
COL/ROW
名前がサイズじゃなくて位置っぽい
board[x][y]
board[y][x]の方が良いことあるかも
key
ifの羅列よりもswitch case
ways
static constをつけよう
directions
return で8個orしてるのがいやだ
名前
規模のわりに名前が長い
srand
なんで何回もよぶ?
344デフォルトの名無しさん
2018/08/24(金) 21:21:50.11ID:s18ZTF9u >>343
ありがとうございます
ありがとうございます
345デフォルトの名無しさん
2018/08/24(金) 21:27:17.08ID:ZkSPfVdV ROW *2 + 7
同じ式を何度も書かない
state
色の持ち方が変
黒 : user or com
白 : user or com
じゃないの?
directions
意味的にBOOLだよね?
同じ式を何度も書かない
state
色の持ち方が変
黒 : user or com
白 : user or com
じゃないの?
directions
意味的にBOOLだよね?
346デフォルトの名無しさん
2018/08/24(金) 21:30:34.34ID:s18ZTF9u347デフォルトの名無しさん
2018/08/24(金) 21:31:42.96ID:ZkSPfVdV UIとデータ処理を切り離せるといいね
内容的に、
C++のクラス設計のいい練習になりそう
内容的に、
C++のクラス設計のいい練習になりそう
348デフォルトの名無しさん
2018/08/24(金) 21:32:12.09ID:s18ZTF9u >>347
切り離したつもりだったのですが不十分のようですね
切り離したつもりだったのですが不十分のようですね
349デフォルトの名無しさん
2018/08/24(金) 21:34:40.57ID:ZkSPfVdV >>346
どれが「なぜでしょうか?」
どれが「なぜでしょうか?」
350デフォルトの名無しさん
2018/08/24(金) 21:35:17.53ID:s18ZTF9u >>349
二番目です。
二番目です。
351デフォルトの名無しさん
2018/08/24(金) 21:36:50.13ID:s18ZTF9u 理解しました。
352デフォルトの名無しさん
2018/08/24(金) 21:39:53.18ID:ZkSPfVdV com/user が1人ずつ限定なら片方の情報は冗長
データ的にはどっちも黒とかどっちも白とか設定できちゃうので無駄な判別が発生したり
com vs com とか user vs user とか
comアルゴリズム1 とか
将来を考えても
白と黒に対してプレーヤーデータを持つのが良い
データ的にはどっちも黒とかどっちも白とか設定できちゃうので無駄な判別が発生したり
com vs com とか user vs user とか
comアルゴリズム1 とか
将来を考えても
白と黒に対してプレーヤーデータを持つのが良い
353デフォルトの名無しさん
2018/08/24(金) 21:42:16.32ID:s18ZTF9u >>352
ありがとうございます
ありがとうございます
354デフォルトの名無しさん
2018/08/24(金) 21:57:27.71ID:O3WQJa8X 結局俺があらかじめ言ったとおりだろ。再掲するが
> あと、初心者はよく
> ・色々文法を知ってて、様々な書き方が出来る奴が偉い
> と勘違いしがちのようだが、これは明確な間違いだ。(これは他言語では本当に酷い)
> こんな糞どうでもいいところを様々な書き方をしているような奴は雑魚だ。
> 上手い奴は、そいつが決めたやり方に従って、一定の書き方で書く。 (>>170)
do-while 知ってる俺ツエーなんてやってるうちは初心者だし上達しない。
そういう勘違いしている奴も(特に他言語では)多いのも事実だし、Cですらそういう馬鹿が押し寄せてきた、というだけだが。
これも既に言ったが、
> なお、Goにはwhileが無い。廃止されて、forだけになっている。 (>>161)
お前らの定義ではGo言語を使う限り上級者ではないことになるだろ。
それはお前らの頭でもおかしいと気づけるだろ。
昨今の問題は、お前らみたいな馬鹿が嘘デタラメを書いて、全くの初心者がそれに惑わされてしまうことだ。
コードの美しさについて語るのなら、10,000行書けるようになってからにしろ。
というか、お前らは「オレオレ流美しいコード」のようだが、それも間違いで、結局の所、
美しいコード=保守が楽なコード、でしかない。ある意味、これが定義だ。
だから大規模(>10,000行)のコードを数年保守すればいやでも分かるし、それをやらないと『自分の頭では』分からない。
だから1000行すら書けない初心者がコードについて語るのがそもそも間違ってる。
既に言ったが、1000行書けるようになれば、「コードの美しさ」について何を議論しているのか分かるようになる。
逆に言えば、それまでは一体何を議論しているのかすら分からないはずなんだよ。
「疎結合化しろと言われたから分割してみたけど、これって必要なの?」ってのが本音のはず。
そこを意識高い系馬鹿が「疎結合は正義」みたいなことを言うから、必要以上に細切れにして余計に分かりにくくなる。
それを揶揄したのが"FizzBuzzEnterpriseEdition"というわけだ。
実際、お前らも少なからずこれに近い状態だと思うよ。
> あと、初心者はよく
> ・色々文法を知ってて、様々な書き方が出来る奴が偉い
> と勘違いしがちのようだが、これは明確な間違いだ。(これは他言語では本当に酷い)
> こんな糞どうでもいいところを様々な書き方をしているような奴は雑魚だ。
> 上手い奴は、そいつが決めたやり方に従って、一定の書き方で書く。 (>>170)
do-while 知ってる俺ツエーなんてやってるうちは初心者だし上達しない。
そういう勘違いしている奴も(特に他言語では)多いのも事実だし、Cですらそういう馬鹿が押し寄せてきた、というだけだが。
これも既に言ったが、
> なお、Goにはwhileが無い。廃止されて、forだけになっている。 (>>161)
お前らの定義ではGo言語を使う限り上級者ではないことになるだろ。
それはお前らの頭でもおかしいと気づけるだろ。
昨今の問題は、お前らみたいな馬鹿が嘘デタラメを書いて、全くの初心者がそれに惑わされてしまうことだ。
コードの美しさについて語るのなら、10,000行書けるようになってからにしろ。
というか、お前らは「オレオレ流美しいコード」のようだが、それも間違いで、結局の所、
美しいコード=保守が楽なコード、でしかない。ある意味、これが定義だ。
だから大規模(>10,000行)のコードを数年保守すればいやでも分かるし、それをやらないと『自分の頭では』分からない。
だから1000行すら書けない初心者がコードについて語るのがそもそも間違ってる。
既に言ったが、1000行書けるようになれば、「コードの美しさ」について何を議論しているのか分かるようになる。
逆に言えば、それまでは一体何を議論しているのかすら分からないはずなんだよ。
「疎結合化しろと言われたから分割してみたけど、これって必要なの?」ってのが本音のはず。
そこを意識高い系馬鹿が「疎結合は正義」みたいなことを言うから、必要以上に細切れにして余計に分かりにくくなる。
それを揶揄したのが"FizzBuzzEnterpriseEdition"というわけだ。
実際、お前らも少なからずこれに近い状態だと思うよ。
355デフォルトの名無しさん
2018/08/24(金) 21:58:37.52ID:O3WQJa8X あと、ゆとり馬鹿は goto 文に何故か惹かれるようだが、それも止めとけ。
それは goto 文ではなくラベルブレークが必要なだけであり、
Cではそれが goto 文でも書ける、という話でしかない。
なお、ラベルブレークはJavaScriptでは標準だ。(ただしあまり使われていない)
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/break
ポイントは「break文自身がそのラベルブロック中になければならない」(α)という点だ。
今のリンターが「ある/ないでしか判定しないから一律禁止」の可能性はあって、
リンターの精度が上がって上記(α)の判定が出来るようになれば、その用法では許可されてもおかしくはない。
ただそれ以前に、何度も言っているが、こういうのに拘るのは止めとけ。上達を阻害する。
こんな小手先の「数行の見た目」を改善するテクニックより、既に言ったが
> それはメトリックスを増やしてしまう。(静的コールグラフ) (>>224)
とかの方が遙かに重要なんだよ。
こっちは大規模コードをメンテナンスでこねくり回さないと分からない。
さっさとどんどん規模を上げていくべきだ。
(俳句に拘っていてもラノベが書けるようにはならない)
10行しか書けない初心者だからこそ、10行内で改善が見える部分に拘る。
これ自体は自然なのだけど、
低レベルの実装コードを減らす努力はプログラミングに於いてあまり意味がないんだ。
俺の例で言うと、例えば check_func() 内が、goto文無しで15行、ありで10行で書けたとしよう。
だから何?でしかない。
既に言ったとおり、下位の実装コードなんてどうせ読まないし、読むときは名前と一致してるかだけ。
それが10行であっても15行であっても一瞬で読めるのだから、誤差の範囲。
flagが使ってあっても、「ああ、はいはい」だから問題なし。お約束的展開ならいいんだよ。
そんなことより、見慣れない意図不明のコードで???となって詰まる方が問題。
というか、初心者は『見た目でしか判断出来ないから』行数や文字数に拘ったりするけど、それが間違いで、
まずは「読むのにかかる時間」を最小にするように組むんだよ。
それは goto 文ではなくラベルブレークが必要なだけであり、
Cではそれが goto 文でも書ける、という話でしかない。
なお、ラベルブレークはJavaScriptでは標準だ。(ただしあまり使われていない)
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/break
ポイントは「break文自身がそのラベルブロック中になければならない」(α)という点だ。
今のリンターが「ある/ないでしか判定しないから一律禁止」の可能性はあって、
リンターの精度が上がって上記(α)の判定が出来るようになれば、その用法では許可されてもおかしくはない。
ただそれ以前に、何度も言っているが、こういうのに拘るのは止めとけ。上達を阻害する。
こんな小手先の「数行の見た目」を改善するテクニックより、既に言ったが
> それはメトリックスを増やしてしまう。(静的コールグラフ) (>>224)
とかの方が遙かに重要なんだよ。
こっちは大規模コードをメンテナンスでこねくり回さないと分からない。
さっさとどんどん規模を上げていくべきだ。
(俳句に拘っていてもラノベが書けるようにはならない)
10行しか書けない初心者だからこそ、10行内で改善が見える部分に拘る。
これ自体は自然なのだけど、
低レベルの実装コードを減らす努力はプログラミングに於いてあまり意味がないんだ。
俺の例で言うと、例えば check_func() 内が、goto文無しで15行、ありで10行で書けたとしよう。
だから何?でしかない。
既に言ったとおり、下位の実装コードなんてどうせ読まないし、読むときは名前と一致してるかだけ。
それが10行であっても15行であっても一瞬で読めるのだから、誤差の範囲。
flagが使ってあっても、「ああ、はいはい」だから問題なし。お約束的展開ならいいんだよ。
そんなことより、見慣れない意図不明のコードで???となって詰まる方が問題。
というか、初心者は『見た目でしか判断出来ないから』行数や文字数に拘ったりするけど、それが間違いで、
まずは「読むのにかかる時間」を最小にするように組むんだよ。
356デフォルトの名無しさん
2018/08/24(金) 22:03:48.96ID:LUWnMn3S 今北産業
357デフォルトの名無しさん
2018/08/24(金) 22:24:56.15ID:wOXsA+Xs 無限ループから
ずっと
続いてた
ずっと
続いてた
358デフォルトの名無しさん
2018/08/24(金) 22:36:21.12ID:ZkSPfVdV 実はいま初めてプレイした
置ける場所「*」が非常に見にくい
これいらない
現在の個数もいらない
最後に表示すればいい
強くするには、
マスに点数をつける
駒の点数と石の数と置ける場所の数をスコアとする
スコアの重みは序盤と終盤とで変える
数手先まで読む
終盤は最後まで読む
これだけで結構強くなる
置ける場所「*」が非常に見にくい
これいらない
現在の個数もいらない
最後に表示すればいい
強くするには、
マスに点数をつける
駒の点数と石の数と置ける場所の数をスコアとする
スコアの重みは序盤と終盤とで変える
数手先まで読む
終盤は最後まで読む
これだけで結構強くなる
359デフォルトの名無しさん
2018/08/24(金) 22:40:17.59ID:O/FKuFVp ラベルブレークしたらラベルがFor文の頭にくるもんで読みづらい
ブレークしなかったときだけ値を変えるとかもやりづらい
おれはケツにGotoする
ブレークしなかったときだけ値を変えるとかもやりづらい
おれはケツにGotoする
360デフォルトの名無しさん
2018/08/24(金) 22:51:34.52ID:s18ZTF9u >>358
おける場所マークがにくくくて点数も要らないと感じるのですね
自分の感覚ではわからなくてその感覚を理解できなくて残念です
どうすれば人のてを借りずにそういうことがわかるようにできるのでしょうか
おける場所マークがにくくくて点数も要らないと感じるのですね
自分の感覚ではわからなくてその感覚を理解できなくて残念です
どうすれば人のてを借りずにそういうことがわかるようにできるのでしょうか
361デフォルトの名無しさん
2018/08/24(金) 22:53:48.04ID:s18ZTF9u ちなみにjs版もあります
https://pre.aichi.jp/Othello/
https://pre.aichi.jp/Othello/
362デフォルトの名無しさん
2018/08/24(金) 22:55:34.09ID:O3WQJa8X >>359
それはラベルブレーク自体ではなく文法の問題だろ。
後置ラベルであれば問題なし。
TypeScriptもGoも型は後置だし、じきにそういう言語が出てくるかもしれんよ。
label: {} // 前置
{} : label // 後置
goto は自由度が高すぎるんだよ。だからリンターには嫌われる。
ただ、お前らが goto に拘るのはさっぱり分からん。
「禁止されたらからこそ使いたくなる」という若気の至りだとしても、ちょっと行きすぎてる。
それはラベルブレーク自体ではなく文法の問題だろ。
後置ラベルであれば問題なし。
TypeScriptもGoも型は後置だし、じきにそういう言語が出てくるかもしれんよ。
label: {} // 前置
{} : label // 後置
goto は自由度が高すぎるんだよ。だからリンターには嫌われる。
ただ、お前らが goto に拘るのはさっぱり分からん。
「禁止されたらからこそ使いたくなる」という若気の至りだとしても、ちょっと行きすぎてる。
363デフォルトの名無しさん
2018/08/24(金) 23:03:27.47ID:QHdFlAyZ dgt:
if(mmr!=00) free(mmr);
return mdr;
err:
mdr=1;
goto dgt;
if(mmr!=00) free(mmr);
return mdr;
err:
mdr=1;
goto dgt;
364デフォルトの名無しさん
2018/08/24(金) 23:04:40.43ID:ZkSPfVdV365デフォルトの名無しさん
2018/08/24(金) 23:06:04.22ID:ZkSPfVdV >>363
なんで8進数?
なんで8進数?
366デフォルトの名無しさん
2018/08/24(金) 23:07:25.00ID:QHdFlAyZ >>364
10にする
10にする
367デフォルトの名無しさん
2018/08/24(金) 23:09:57.93ID:QHdFlAyZ printf("メンテナンス楽しくさせたる0x%o'",>>365);
368デフォルトの名無しさん
2018/08/24(金) 23:13:00.47ID:ZkSPfVdV こら
369デフォルトの名無しさん
2018/08/24(金) 23:21:50.02ID:QHdFlAyZ for (y = 0; y < 9; y++){
. . for (x = 0; x < 9; x++){
. . . . if (判定) goto break_loop;
. . . . int nico[x+1]=(8^0^8);
. . }
}
break_loop:
. . for (x = 0; x < 9; x++){
. . . . if (判定) goto break_loop;
. . . . int nico[x+1]=(8^0^8);
. . }
}
break_loop:
370デフォルトの名無しさん
2018/08/24(金) 23:21:54.95ID:ZkSPfVdV 8進数使わないよね
0も厳密には8進数だけど
2進数の方が欲しい
コンパイラによっては使えたりする
あと16進数の小数
0も厳密には8進数だけど
2進数の方が欲しい
コンパイラによっては使えたりする
あと16進数の小数
371デフォルトの名無しさん
2018/08/24(金) 23:26:13.62ID:ZkSPfVdV372デフォルトの名無しさん
2018/08/24(金) 23:29:02.20ID:YufcJqyf gcc拡張にはローカルのラベルがある
373デフォルトの名無しさん
2018/08/24(金) 23:31:23.64ID:O3WQJa8X >>364
お前みたいな初心者には目新しいのかもしれんが、それは古典的な議論なんだよ。
https://stackoverflow.com/questions/9695902/how-to-break-out-of-nested-loops
お前みたいな初心者には目新しいのかもしれんが、それは古典的な議論なんだよ。
https://stackoverflow.com/questions/9695902/how-to-break-out-of-nested-loops
374デフォルトの名無しさん
2018/08/24(金) 23:34:21.43ID:srP6ovAZ375デフォルトの名無しさん
2018/08/25(土) 00:24:24.60ID:Jgm8sU0X 前半って具体的にどの箇所のこと言ってんの?
376デフォルトの名無しさん
2018/08/25(土) 01:05:51.76ID:Jgm8sU0X >>286
>しかしコンパイラはwhile文をif文とdo-while文相当に置き換えて最適化するから、差は出ない。
while文をgoto文とdo-while文相当に置き換えて最適化する
の方が正しいような気がする
>しかしコンパイラはwhile文をif文とdo-while文相当に置き換えて最適化するから、差は出ない。
while文をgoto文とdo-while文相当に置き換えて最適化する
の方が正しいような気がする
377デフォルトの名無しさん
2018/08/25(土) 03:21:08.67ID:5+GN6Il1 なぜコンパイル後のアセンブリコードで話をしないのか
この辺LLVMとかだとどうなってるんだろうね
この辺LLVMとかだとどうなってるんだろうね
378デフォルトの名無しさん
2018/08/25(土) 05:48:12.02ID:r5O9PJUC379デフォルトの名無しさん
2018/08/25(土) 06:08:11.27ID:mKHlp3ya380デフォルトの名無しさん
2018/08/25(土) 06:25:56.22ID:mKHlp3ya . . for (y = 0; y < 9; y++){
. . . . for (x = 0; x < 9; x++){
. . . . . . if (判定){
. . . . . . . . [breakする場合だけ行う処理]
. . . . . . . . goto break_loop;
. . . . . . }
. . . . . . 処理
. . . . }
. . }
. . [ループ完了した時だけ行う処理]
break_loop:
. . [共通の処理]
. . . . for (x = 0; x < 9; x++){
. . . . . . if (判定){
. . . . . . . . [breakする場合だけ行う処理]
. . . . . . . . goto break_loop;
. . . . . . }
. . . . . . 処理
. . . . }
. . }
. . [ループ完了した時だけ行う処理]
break_loop:
. . [共通の処理]
381デフォルトの名無しさん
2018/08/25(土) 06:28:41.80ID:/11s7nnG 例外処理にgotoが必要なんて話は
大昔から語り尽くされているのに
今さらドヤられても・・・・
大昔から語り尽くされているのに
今さらドヤられても・・・・
382デフォルトの名無しさん
2018/08/25(土) 06:33:15.79ID:mKHlp3ya gotoの使い方を知らない人がいるようなので
383デフォルトの名無しさん
2018/08/25(土) 08:56:32.19ID:khOLQHnm >>379
お前は本当に無知なようだが、
この議論は昔からある有名な物で、結論も『既に』決まっているんだよ。
> No, don't spoil the fun with a break. This is the last remaining valid use of goto :)
> If not this then you could use flags to break out of deep nested loops.
> Another approach to breaking out of a nested loop is to factor out both loops into a separate function, and return from that function when you want to exit.
>
> Summarized - to break out of nested loops:
>
> 1. use goto
> 2. use flags
> 3. factor out loops into separate function calls
> Couldn't resist not including xkcd here :)
>
> enter image description here
>
> source
>
> Goto's are considered harmful but as many people in the comments suggest it need not be. If used judiciously it can be a great tool. Anything used in moderation is fun.
まさにこの通り。
その中でお前がどれを選択するかは自由だし、それは俺含めた他人の選択とは無関係だ。
○○を選択した俺ツエーとイキれる話でもない。
俺はお前がこの『既に結論が決まっている』話をどう持って行きたいのか分からない。
レス乞食なら死ね。
お前は本当に無知なようだが、
この議論は昔からある有名な物で、結論も『既に』決まっているんだよ。
> No, don't spoil the fun with a break. This is the last remaining valid use of goto :)
> If not this then you could use flags to break out of deep nested loops.
> Another approach to breaking out of a nested loop is to factor out both loops into a separate function, and return from that function when you want to exit.
>
> Summarized - to break out of nested loops:
>
> 1. use goto
> 2. use flags
> 3. factor out loops into separate function calls
> Couldn't resist not including xkcd here :)
>
> enter image description here
>
> source
>
> Goto's are considered harmful but as many people in the comments suggest it need not be. If used judiciously it can be a great tool. Anything used in moderation is fun.
まさにこの通り。
その中でお前がどれを選択するかは自由だし、それは俺含めた他人の選択とは無関係だ。
○○を選択した俺ツエーとイキれる話でもない。
俺はお前がこの『既に結論が決まっている』話をどう持って行きたいのか分からない。
レス乞食なら死ね。
384デフォルトの名無しさん
2018/08/25(土) 09:01:26.86ID:khOLQHnm >>377
LLVMでも変わらない。
あれはコンパイラの制作を楽にするものであって、魔法の杖ではないから。
https://blanktar.jp/blog/2015/07/c-while-do-while.html
LLVMでも変わらない。
あれはコンパイラの制作を楽にするものであって、魔法の杖ではないから。
https://blanktar.jp/blog/2015/07/c-while-do-while.html
385デフォルトの名無しさん
2018/08/25(土) 09:04:29.83ID:qgzET8Il CにはJavaのArrayList、HashMap、TreeMapみたいなライブラリはないみたいですが、普通はどうやってデータを管理するのでしょうか?
386デフォルトの名無しさん
2018/08/25(土) 09:12:41.48ID:iDBA6fbU そう言ったデータ構造を標準機能で使いたいならC++を部分的に利用するのが手っ取り早いのでは?
gccもclangもC言語処理系ではあるけどC++の処理系でもある
gccもclangもC言語処理系ではあるけどC++の処理系でもある
387デフォルトの名無しさん
2018/08/25(土) 09:15:10.60ID:qgzET8Il388デフォルトの名無しさん
2018/08/25(土) 09:23:12.83ID:iDBA6fbU389デフォルトの名無しさん
2018/08/25(土) 09:46:55.20ID:Gb+uOyj2 世の中には便利で高性能なライブラリがあるからね。言語自体が機能を内包してた方が迷いはないかも知れんが。
標準ライブラリのhsearchとか誰も使わんな。俺も使わない。
標準ライブラリのhsearchとか誰も使わんな。俺も使わない。
390デフォルトの名無しさん
2018/08/25(土) 09:50:09.09ID:mKHlp3ya391デフォルトの名無しさん
2018/08/25(土) 09:57:03.08ID:/11s7nnG392デフォルトの名無しさん
2018/08/25(土) 10:17:18.44ID:khOLQHnm393デフォルトの名無しさん
2018/08/25(土) 10:30:26.94ID:OV9APJVg Cのコードを自動生成するようなフレームワークもあると思うけど
そういうのが出てきたらCプログラマって必要なくないか?
最近Cのプログラマが需要がないから減ってる気がする
そういうのが出てきたらCプログラマって必要なくないか?
最近Cのプログラマが需要がないから減ってる気がする
394デフォルトの名無しさん
2018/08/25(土) 10:31:25.04ID:mKHlp3ya >>392
負け宣言www
負け宣言www
395デフォルトの名無しさん
2018/08/25(土) 10:33:04.07ID:/11s7nnG >>392
自己紹介乙
自己紹介乙
396デフォルトの名無しさん
2018/08/25(土) 10:37:34.03ID:mM6Mjb64 >>388>>389
hsearchはHashMapみたいですが、確かに使いづらそう・・・
自作するってやっぱりCは初心者には厳しいですね
ちなみにこのスレの方々は自作しますか?それとも外部ライブラリ使う派ですか?
外部ライブラリ使うのであればオススメありますか?
hsearchはHashMapみたいですが、確かに使いづらそう・・・
自作するってやっぱりCは初心者には厳しいですね
ちなみにこのスレの方々は自作しますか?それとも外部ライブラリ使う派ですか?
外部ライブラリ使うのであればオススメありますか?
397デフォルトの名無しさん
2018/08/25(土) 11:02:02.19ID:khOLQHnm >>393
https://www.tiobe.com/tiobe-index/
PC等、富豪プログラミングが許される状況では書く必要はなくなっていくだろう。
Cは必要なところのみDLLに切り出してピンポイント高速化でいい。
ただ、IoTの場合、速度=バッテリの持ち=小型化に直結するので、
今後ともCで書くのが主流ではないかな。
C++は結局の所、C程の速度は出ないし、DLLもイマイチなので主流になりきれなかった。
Rustが完全に立ち上がれば、Cが駆逐される可能性はある。
Javaがなんだかんだで主流なのは、いろんな意味でバランスが取れているからだ。
https://www.tiobe.com/tiobe-index/
PC等、富豪プログラミングが許される状況では書く必要はなくなっていくだろう。
Cは必要なところのみDLLに切り出してピンポイント高速化でいい。
ただ、IoTの場合、速度=バッテリの持ち=小型化に直結するので、
今後ともCで書くのが主流ではないかな。
C++は結局の所、C程の速度は出ないし、DLLもイマイチなので主流になりきれなかった。
Rustが完全に立ち上がれば、Cが駆逐される可能性はある。
Javaがなんだかんだで主流なのは、いろんな意味でバランスが取れているからだ。
398デフォルトの名無しさん
2018/08/25(土) 11:08:31.00ID:mKHlp3ya C++でCの速度が出ない????
399デフォルトの名無しさん
2018/08/25(土) 11:17:43.56ID:mKHlp3ya ピンポイント高速化とDLLも関係ないし
Cが使われるのはほとんどが小規模組み込み
逆に小規模組み込みはCしか選択肢が無い場合が多い
他の言語と競ってもあまり意味が無い
Cが使われるのはほとんどが小規模組み込み
逆に小規模組み込みはCしか選択肢が無い場合が多い
他の言語と競ってもあまり意味が無い
400デフォルトの名無しさん
2018/08/25(土) 11:23:43.36ID:M70RZcxI401デフォルトの名無しさん
2018/08/25(土) 11:25:52.08ID:06VRwQlu 必要なもの(だけ)を作る
使いたいけどないなら作る
これがC言語
使いたいけどないなら作る
これがC言語
402デフォルトの名無しさん
2018/08/25(土) 11:28:31.78ID:OV9APJVg403デフォルトの名無しさん
2018/08/25(土) 11:30:03.25ID:LrSeHAMC404デフォルトの名無しさん
2018/08/25(土) 11:32:05.97ID:/11s7nnG >>397
C++が使えません、まで読んだ
C++が使えません、まで読んだ
405デフォルトの名無しさん
2018/08/25(土) 11:35:24.37ID:0r5h6/lL 言語なんか関係ない
知恵遅れなクソがコード書けば
クソなコードになる
それ以外ない
すべて知恵遅れが原因
知恵遅れなクソがコード書けば
クソなコードになる
それ以外ない
すべて知恵遅れが原因
406デフォルトの名無しさん
2018/08/25(土) 11:38:10.89ID:OV9APJVg Cで例えばメモリを操作するコードが100行あるとするよな?
そのコードを作成するフレームワークがあるなら
それ使えばいいし、Cいらなくねwwってことな
そのコードを作成するフレームワークがあるなら
それ使えばいいし、Cいらなくねwwってことな
407デフォルトの名無しさん
2018/08/25(土) 11:39:19.95ID:0r5h6/lL いちいちな
試験もされてないような知恵遅れが作ったフレームワーク()
なんかつかわないからな
障害の原因
試験もされてないような知恵遅れが作ったフレームワーク()
なんかつかわないからな
障害の原因
408デフォルトの名無しさん
2018/08/25(土) 11:50:32.60ID:0r5h6/lL 知恵遅れはまとな思考してれば
まともな人間なら書けないようなコードを平気で書くからな
やばいぐらい頭悪いコードを
それも息するように書くからな
しかもその自覚がない
オツムに致命的な問題がある
アルゴリズムを実現するための言語の問題じゃない
アルゴリズムなんかどんな言語でも実現できる
言語なんかただの方言だからな
Cが畿内の方言なら
C++はエミシの方言
Javaはクマソの方言
まともな人間なら書けないようなコードを平気で書くからな
やばいぐらい頭悪いコードを
それも息するように書くからな
しかもその自覚がない
オツムに致命的な問題がある
アルゴリズムを実現するための言語の問題じゃない
アルゴリズムなんかどんな言語でも実現できる
言語なんかただの方言だからな
Cが畿内の方言なら
C++はエミシの方言
Javaはクマソの方言
409デフォルトの名無しさん
2018/08/25(土) 11:57:12.59ID:0NZIGmlJ >>400
自分は馬鹿ですって言ってるな
自分は馬鹿ですって言ってるな
410デフォルトの名無しさん
2018/08/25(土) 11:59:50.71ID:yggGxXGy >>408
コーディングもアルゴリズムも数学も出来ない学歴コンプなアホは黙ってろ
コーディングもアルゴリズムも数学も出来ない学歴コンプなアホは黙ってろ
411デフォルトの名無しさん
2018/08/25(土) 12:09:09.86ID:0r5h6/lL javaはpascalとも混血してる
412デフォルトの名無しさん
2018/08/25(土) 12:13:02.72ID:0r5h6/lL pascalはインチキalgol
413デフォルトの名無しさん
2018/08/25(土) 12:58:06.70ID:OV9APJVg if文の中を抜けたい場合ってどうすればいいですか?
breakはforとwileを抜けるんですよね?
ifを抜けるには?gotoは使いたくないです
breakはforとwileを抜けるんですよね?
ifを抜けるには?gotoは使いたくないです
414デフォルトの名無しさん
2018/08/25(土) 13:05:12.45ID:Q2JYdW4P 意味不明
if文の中ってどういうこと?
ただ条件式があるだけだろ
if文の中ってどういうこと?
ただ条件式があるだけだろ
415デフォルトの名無しさん
2018/08/25(土) 13:05:57.37ID:J3tnFs/w goto使え
宗教的に無理ならdo while (0);で囲んでbreak
宗教的に無理ならdo while (0);で囲んでbreak
416デフォルトの名無しさん
2018/08/25(土) 13:07:57.58ID:YF0z4wS0 continueかbreak
417デフォルトの名無しさん
2018/08/25(土) 13:08:12.82ID:0r5h6/lL switchならbreakで抜けれる
breakで抜けなければ、続きが実行される
breakで抜けなければ、続きが実行される
418デフォルトの名無しさん
2018/08/25(土) 13:18:05.46ID:khOLQHnm419デフォルトの名無しさん
2018/08/25(土) 13:25:50.33ID:0r5h6/lL むかしのc++はcのコードジェネレーターだったからな
昔あったinfomixのesqlもインチキなcのコード書くと、それをcのコードにおきかえて出力する
昔、大量のfortranのコードをcに変換しないといけなかったことがあるが
最初は自動変換したがとても読めるシロモノじゃなかったから
ドカタに人力作業をお願いした
ドカタはこういうのは得意
昔あったinfomixのesqlもインチキなcのコード書くと、それをcのコードにおきかえて出力する
昔、大量のfortranのコードをcに変換しないといけなかったことがあるが
最初は自動変換したがとても読めるシロモノじゃなかったから
ドカタに人力作業をお願いした
ドカタはこういうのは得意
420デフォルトの名無しさん
2018/08/25(土) 13:32:40.10ID:M70RZcxI >>409
お前ほどじゃないよ
お前ほどじゃないよ
421デフォルトの名無しさん
2018/08/25(土) 13:41:52.99ID:0r5h6/lL cで書いとけば間違いない
なんにでも使える
luaからでも超簡単に使えてしまう
なんにでも使える
luaからでも超簡単に使えてしまう
422デフォルトの名無しさん
2018/08/25(土) 13:50:16.83ID:yggGxXGy if や単なる {} をbreakで抜けられたら便利だと思ったことがある
この場合、多段 break もほぼセットで必要
break n
break if
break for
break switch
break while
break do
こんなのでもいいかも
この場合、多段 break もほぼセットで必要
break n
break if
break for
break switch
break while
break do
こんなのでもいいかも
423デフォルトの名無しさん
2018/08/25(土) 13:52:19.69ID:yggGxXGy 名前付きループ
だとbreakやcontinueにも使えるけど
わざわざ名前を付けるくらいならgotoでいい
だとbreakやcontinueにも使えるけど
わざわざ名前を付けるくらいならgotoでいい
424デフォルトの名無しさん
2018/08/25(土) 13:53:56.31ID:0r5h6/lL あいかわらず
低学歴知恵遅れは頭悪いこといってるわ
ループのbreakなのか条件のbreakなのか
コンパイラが解釈できない
コレがザ知恵遅れ
低学歴知恵遅れは頭悪いこといってるわ
ループのbreakなのか条件のbreakなのか
コンパイラが解釈できない
コレがザ知恵遅れ
425デフォルトの名無しさん
2018/08/25(土) 13:56:46.76ID:0r5h6/lL for (;;) {
if (!aho) {
break;
}
}
自覚がないアホが治らないからアホの仕様では無限ループから抜けれない
アホのまま無限ループ
if (!aho) {
break;
}
}
自覚がないアホが治らないからアホの仕様では無限ループから抜けれない
アホのまま無限ループ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【テレビ】25年ぶり復活「炎のチャレンジャー」南原清隆&菊池風磨がMC 懐かし「電流イライラ棒」も [湛然★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 働いて参ります
- ( ・᷄ὢ・᷅ )あ?
- ブタをぶったたく
- とうとう袖なしジージャン買ったったwww
- こんな自転車乗ってたやつがいたら?
- 【画像】童貞は絶ッッッ対"4"を選ぶバレー部J Kが寮でパンパンの集合写真見つけちゃったwwwwwwwwwwwwww [904880432]
