1 名前:デフォルトの名無しさん [2018/08/16(木) 23:36:02.22 ID:fOCSKLtw.net] C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 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/
321 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:51:17.53 ID:MmiOMKcQ.net] うちの会社って、まだHungarian notationを強制しようとする人がいるんだけど、make excessiveせずに説得するにはどうしたら良いでしょうか?
322 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:53:50.92 ID:srP6ovAZ.net] >>301 あんたにはないのかもね 別に全てに人に同意してもらおうとは思ってない 色々おかしい人はいくらでもいるし
323 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 18:14:41.54 ID:ZkSPfVdV.net] >>316 昔話じゃないって言ってるの そもそも>>286 が間違ってる
324 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 18:40:16.19 ID:1mvArulW.net] >>319 どこが?
325 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 1
] [ここ壊れてます]
326 名前:9:11:10.10 ID:s18ZTF9u.net mailto: >>317 なんだよその不自然な英語混じり文は なんか変わり者っぽいな [] [ここ壊れてます]
327 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:16:16.69 ID:C/3CctmU.net] >>320 これだろ >whileは先頭付近に条件分岐が必要な他に、末尾に必ず無条件のジャンプが必要。 whileの処理構造ならループ開始直後に条件判定の個所に(1度だけ)無条件ジャンプしてしまえば、あとは条件分岐を繰り返すだけで無条件ジャンプを再び使うことはない ぶっちゃけ条件判定が先頭付近にあろうが末尾にあろうが何処でもいい (do-whileの構造だと必ず一度は処理を実行する必要があるのでそんなことは出来ないけど)
328 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:23:07.44 ID:YufcJqyf.net] 先頭のほうがええやろ
329 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:28:22.47 ID:MmiOMKcQ.net] >>321 日本人なんだけど日本育ちじゃないのでニュアンスをどう伝えたら良いのか分からないのですみません
330 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:30:09.95 ID:1mvArulW.net] >>322 それがdo-while構造に最適化してるってことでは?
331 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:37:04.31 ID:C/3CctmU.net] >>323 C言語のソースと直接対応させるならそのほうがその方が素直といえば素直だけどね 条件分岐命令はジャンプ範囲に制限があることがある(-128〜+127byte程度)ので下手すれば多段ジャンプを強いられることがある アセンブラレベルでギリギリの調整をするときはループ構造が制約されることもあるよ
332 名前:デフォルトの名無しさん [2018/08/24(金) 19:50:21.18 ID:rXR3rzpw.net] 条件分岐で飛び先を相対で1バイトで指定しなければならないがそれ以上飛ばしたいなら逆の条件で無条件ジャンプによるループを抜けるようにすれば良いだけでは?
333 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:52:23.26 ID:s18ZTF9u.net] >>324 マジかよ
334 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:59:34.12 ID:ZkSPfVdV.net] >>320 >>278 わざわざ普通のコンパイラの結果を書いてあげてるのに
335 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:59:55.12 ID:C/3CctmU.net] >>327 その方が適切な場合であればそうする 結局のところコンパイラの吐き出したバイナリをアセンブラでチューニングするような状況だと少しでも所要クロックが少なく命令バイト長が短くなるようにロジックを弄るんだよ
336 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 20:05:00.35 ID:s18ZTF9u.net] ぼくのコードを評価してください https://ideone.com/YEOWVY
337 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 20:11:20.96 ID:ZkSPfVdV.net] >>331 趣味の押し付け合いを望んでる?
338 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 20:11:35.07 ID:s18ZTF9u.net] >>332 はい
339 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 20:13:15.06 ID:YufcJqyf.net] いや、後ろにあると見づらいだろ
340 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 20:13:19.64 ID:ZkSPfVdV.net] 弱すぎて話にならん
341 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 20:15:18.17 ID:dK+ILFnq.net] >>331 関数にコメント書いてない 0点
342 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 20:18:15.07 ID:s18ZTF9u.net] >>336 なるほど
343 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 20:18:52.05 ID:s18ZTF9u.net] >>335 コーディングを評価してください
344 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 20:21:05.45 ID:ZlD+iWMs.net] コメントする必要がないのが100点満点なんだが
345 名前:デフォルトの名無しさん [2018/08/24(金) 20:27:27.38 ID:rXR3rzpw.net] これはダメだ。もう何を言っても無駄だろう。 と思わせれば100点である、と。
346 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 20:30:03.18 ID:QHdFlAyZ.net] >>331 ネスト不快
347 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 20:33:17.73 ID:s18ZTF9u.net] >>341 なるほど
348 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 21:19:21.07 ID:ZkSPfVdV.net] 関数分け いまいち STATE *state const でいいところもconstが無い COL/ROW 名前がサイズじゃなくて位置っぽい board[x][y] board[y][x]の方が良いことあるかも key ifの羅列よりもswitch case ways static constをつけよう directions return で8個orしてるのがいやだ 名前 規模のわりに名前が長い srand なんで何回もよぶ?
349 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 21:21:50.11 ID:s18ZTF9u.net] >>343 ありがとうございます
350 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 21:27:17.08 ID:ZkSPfVdV.net] ROW *2 + 7 同じ式を何度も書かない state 色の持ち方が変 黒 : user or com 白 : user or com じゃないの? directions 意味的にBOOLだよね?
351 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 21:30:34.34 ID:s18ZTF9u.net] >>345 なるほど 何故でしょうか C言語にもBOOLがあるのですね
352 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 21:31:42.96 ID:ZkSPfVdV.net] UIとデータ処理を切り離せるといいね 内容的に、 C++のクラス設計のいい練習になりそう
353 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 21:32:12.09 ID:s18ZTF9u.net] >>347 切り離したつもりだったのですが不十分のようですね
354 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 21:34:40.57 ID:ZkSPfVdV.net] >>346 どれが「なぜでしょうか?」
355 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 21:35:17.53 ID:s18ZTF9u.net] >>349 二番目です。
356 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 21:36:50.13 ID:s18ZTF9u.net] 理解しました。
357 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 21:39:53.18 ID:ZkSPfVdV.net] com/user が1人ずつ限定なら片方の情報は冗長 データ的にはどっちも黒とかどっちも白とか設定できちゃうので無駄な判別が発生したり com vs com とか user vs user とか comアルゴリズム1 とか 将来を考えても 白と黒に対してプレーヤーデータを持つのが良い
358 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 21:42:16.32 ID:s18ZTF9u.net] >>352 ありがとうございます
359 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 21:57:27.71 ID:O3WQJa8X.net] 結局俺があらかじめ言ったとおりだろ。再掲するが > あと、初心者はよく > ・色々文法を知ってて、様々な書き方が出来る奴が偉い > と勘違いしがちのようだが、これは明確な間違いだ。(これは他言語では本当に酷い) > こんな糞どうでもいいところを様々な書き方をしているような奴は雑魚だ。 > 上手い奴は、そいつが決めたやり方に従って、一定の書き方で書く。 (>>170 ) do-while 知ってる俺ツエーなんてやってるうちは初心者だし上達しない。 そういう勘違いしている奴も(特に他言語では)多いのも事実だし、Cですらそういう馬鹿が押し寄せてきた、というだけだが。 これも既に言ったが、 > なお、Goにはwhileが無い。廃止されて、forだけになっている。 (>>161 ) お前らの定義ではGo言語を使う限り上級者ではないことになるだろ。 それはお前らの頭でもおかしいと気づけるだろ。 昨今の問題は、お前らみたいな馬鹿が嘘デタラメを書いて、全くの初心者がそれに惑わされてしまうことだ。 コードの美しさについて語るのなら、10,000行書けるようになってからにしろ。 というか、お前らは「オレオレ流美しいコード」のようだが、それも間違いで、結局の所、 美しいコード=保守が楽なコード、でしかない。ある意味、これが定義だ。 だから大規模(>10,000行)のコードを数年保守すればいやでも分かるし、それをやらないと『自分の頭では』分からない。 だから1000行すら書けない初心者がコードについて語るのがそもそも間違ってる。 既に言ったが、1000行書けるようになれば、「コードの美しさ」について何を議論しているのか分かるようになる。 逆に言えば、それまでは一体何を議論しているのかすら分からないはずなんだよ。 「疎結合化しろと言われたから分割してみたけど、これって必要なの?」ってのが本音のはず。 そこを意識高い系馬鹿が「疎結合は正義」みたいなことを言うから、必要以上に細切れにして余計に分かりにくくなる。 それを揶揄したのが"FizzBuzzEnterpriseEdition"というわけだ。 実際、お前らも少なからずこれに近い状態だと思うよ。
360 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 21:58:37.52 ID:O3WQJa8X.net] あと、ゆとり馬鹿は 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が使ってあっても、「ああ、はいはい」だから問題なし。お約束的展開ならいいんだよ。 そんなことより、見慣れない意図不明のコードで???となって詰まる方が問題。 というか、初心者は『見た目でしか判断出来ないから』行数や文字数に拘ったりするけど、それが間違いで、 まずは「読むのにかかる時間」を最小にするように組むんだよ。
361 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:03:48.96 ID:LUWnMn3S.net] 今北産業
362 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:24:56.15 ID:wOXsA+Xs.net] 無限ループから ずっと 続いてた
363 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:36:21.12 ID:ZkSPfVdV.net] 実はいま初めてプレイした 置ける場所「*」が非常に見にくい これいらない 現在の個数もいらない 最後に表示すればいい 強くするには、 マスに点数をつける 駒の点数と石の数と置ける場所の数をスコアとする スコアの重みは序盤と終盤とで変える 数手先まで読む 終盤は最後まで読む これだけで結構強くなる
364 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:40:17.59 ID:O/FKuFVp.net] ラベルブレークしたらラベルがFor文の頭にくるもんで読みづらい ブレークしなかったときだけ値を変えるとかもやりづらい おれはケツにGotoする
365 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:51:34.52 ID:s18ZTF9u.net] >>358 おける場所マークがにくくくて点数も要らないと感じるのですね 自分の感覚ではわからなくてその感覚を理解できなくて残念です どうすれば人のてを借りずにそういうことがわかるようにできるのでしょうか
366 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:53:48.04 ID:s18ZTF9u.net] ちなみにjs版もあります https://pre.aichi.jp/Othello/
367 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 22:55:34.09 ID:O3WQJa8X.net] >>359 それはラベルブレーク自体ではなく文法の問題だろ。 後置ラベルであれば問題なし。 TypeScriptもGoも型は後置だし、じきにそういう言語が出てくるかもしれんよ。 label: {} // 前置 {} : label // 後置 goto は自由度が高すぎるんだよ。だからリンターには嫌われる。 ただ、お前らが goto に拘るのはさっぱり分からん。 「禁止されたらからこそ使いたくなる」という若気の至りだとしても、ちょっと行きすぎてる。
368 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 23:03:27.47 ID:QHdFlAyZ.net] dgt: if(mmr!=00) free(mmr); return mdr; err: mdr=1; goto dgt;
369 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 23:04:40.43 ID:ZkSPfVdV.net] >>362 >>294 の上半分、 gotoを使わないで書いてみて
370 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 23:06:04.22 ID:ZkSPfVdV.net] >>363 なんで8進数?
371 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 23:07:25.00 ID:QHdFlAyZ.net] >>364 10にする
372 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 23:09:57.93 ID:QHdFlAyZ.net] printf("メンテナンス楽しくさせたる0x%o'",>>365 );
373 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 23:13:00.47 ID:ZkSPfVdV.net] こら
374 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 23:21:50.02 ID:QHdFlAyZ.net] 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:
375 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 23:21:54.95 ID:ZkSPfVdV.net] 8進数使わないよね 0も厳密には8進数だけど 2進数の方が欲しい コンパイラによっては使えたりする あと16進数の小数
376 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 23:26:13.62 ID:ZkSPfVdV.net] >>369 顔に見えない 可変長配列? 初期化変じゃね?
377 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 23:29:02.20 ID:YufcJqyf.net] gcc拡張にはローカルのラベルがある
378 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 23:31:23.64 ID:O3WQJa8X.net] >>364 お前みたいな初心者には目新しいのかもしれんが、それは古典的な議論なんだよ。 https://stackoverflow.com/questions/9695902/how-to-break-out-of-nested-loops
379 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 23:34:21.43 ID:srP6ovAZ.net] >>322 だから「前半」って書いてあるだろ 今でもしょぼい環境あるぞとか言われてもそんな特殊な環境出されても困るし
380 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 00:24:24.60 ID:Jgm8sU0X.net] 前半って具体的にどの箇所のこと言ってんの?
381 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 01:05:51.76 ID:Jgm8sU0X.net] >>286 >しかしコンパイラはwhile文をif文とdo-while文相当に置き換えて最適化するから、差は出ない。 while文をgoto文とdo-while文相当に置き換えて最適化する の方が正しいような気がする
382 名前:デフォルトの名無しさん [2018/08/25(土) 03:21:08.67 ID:5+GN6Il1.net] なぜコンパイル後のアセンブリコードで話をしないのか この辺LLVMとかだとどうなってるんだろうね
383 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 05:48:12.02 ID:r5O9PJUC.net] >>375 > whileは先頭付近に条件分岐が必要な他に、末尾に必ず無条件のジャンプが必要。 > 対してdo-whileは末尾の条件分岐だけでいい。 > このおかげでループ1回あたり命令実行が一つ減る。 >>376 もうそれ何度も指摘されてる
384 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 06:08:11.27 ID:mKHlp3ya.net] >>373 わざわざ検索したの? であなたならどうやるの?
385 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 06:25:56.22 ID:mKHlp3ya.net] . . for (y = 0; y < 9; y++){ . . . . for (x = 0; x < 9; x++){ . . . . . . if (判定){ . . . . . . . . [breakする場合だけ行う処理] . . . . . . . . goto break_loop; . . . . . . } . . . . . . 処理 . . . . } . . } . . [ループ完了した時だけ行う処理] break_loop: . . [共通の処理]
386 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 06:28:41.80 ID:/11s7nnG.net] 例外処理にgotoが必要なんて話は 大昔から語り尽くされているのに 今さらドヤられても・・・・
387 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 06:33:15.79 ID:mKHlp3ya.net] gotoの使い方を知らない人がいるようなので
388 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 08:56:32.19 ID:khOLQHnm.net] >>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. まさにこの通り。 その中でお前がどれを選択するかは自由だし、それは俺含めた他人の選択とは無関係だ。 ○○を選択した俺ツエーとイキれる話でもない。 俺はお前がこの『既に結論が決まっている』話をどう持って行きたいのか分からない。 レス乞食なら死ね。
389 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 09:01:26.86 ID:khOLQHnm.net] >>377 LLVMでも変わらない。 あれはコンパイラの制作を楽にするものであって、魔法の杖ではないから。 https://blanktar.jp/blog/2015/07/c-while-do-while.html
390 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 09:04:29.83 ID:qgzET8Il.net] CにはJavaのArrayList、HashMap、TreeMapみたいなライブラリはないみたいですが、普通はどうやってデータを管理するのでしょうか?
391 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 09:12:41.48 ID:iDBA6fbU.net] そう言ったデータ構造を標準機能で使いたいならC++を部分的に利用するのが手っ取り早いのでは? gccもclangもC言語処理系ではあるけどC++の処理系でもある
392 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 09:15:10.60 ID:qgzET8Il.net] >>386 C++でできるのは調べました 純粋なCではどうしているのかが分からないので
393 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 09:23:12.83 ID:iDBA6fbU.net] >>387 標準ライブラリにそんな機能はないよ 純粋なC言語でやるなら、すべて自前で作るか適当な外部ライブラリを探すしかない
394 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 09:46:55.20 ID:Gb+uOyj2.net] 世の中には便利で高性能なライブラリがあるからね。言語自体が機能を内包してた方が迷いはないかも知れんが。 標準ライブラリのhsearchとか誰も使わんな。俺も使わない。
395 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 09:50:09.09 ID:mKHlp3ya.net] >>383 C言語の話題はもうされ尽くしてるから お前はこのスレに来なくていいよ 人間の結論も既に決まってる 死ぬ事だ
396 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 09:57:03.08 ID:/11s7nnG.net] >>389 標準ライブラリってISO/IEC9899:2011か? hsearchなんてないぞ bsearchか、もしかして あれは確かにイケてない関数の1つだな
397 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 10:17:18.44 ID:khOLQHnm.net] >>390 C言語は50年近い歴史が既にあって、無知な新参がイキる余地はない。 イキりたいだけならJavaScriptかGoに行け。 あっちは馬鹿同士で楽しくやってる。
398 名前:デフォルトの名無しさん [2018/08/25(土) 10:30:26.94 ID:OV9APJVg.net] Cのコードを自動生成するようなフレームワークもあると思うけど そういうのが出てきたらCプログラマって必要なくないか? 最近Cのプログラマが需要がないから減ってる気がする
399 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 10:31:25.04 ID:mKHlp3ya.net] >>392 負け宣言www
400 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 10:33:04.07 ID:/11s7nnG.net] >>392 自己紹介乙
401 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 10:37:34.03 ID:mM6Mjb64.net] >>388 >>389 hsearchはHashMapみたいですが、確かに使いづらそう・・・ 自作するってやっぱりCは初心者には厳しいですね ちなみにこのスレの方々は自作しますか?それとも外部ライブラリ使う派ですか? 外部ライブラリ使うのであればオススメありますか?
402 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 11:02:02.19 ID:khOLQHnm.net] >>393 https://www.tiobe.com/tiobe-index/ PC等、富豪プログラミングが許される状況では書く必要はなくなっていくだろう。 Cは必要なところのみDLLに切り出してピンポイント高速化でいい。 ただ、IoTの場合、速度=バッテリの持ち=小型化に直結するので、 今後ともCで書くのが主流ではないかな。 C++は結局の所、C程の速度は出ないし、DLLもイマイチなので主流になりきれなかった。 Rustが完全に立ち上がれば、Cが駆逐される可能性はある。 Javaがなんだかんだで主流なのは、いろんな意味でバランスが取れているからだ。
403 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 11:08:31.00 ID:mKHlp3ya.net] C++でCの速度が出ない????
404 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 11:17:43.56 ID:mKHlp3ya.net] ピンポイント高速化とDLLも関係ないし Cが使われるのはほとんどが小規模組み込み 逆に小規模組み込みはCしか選択肢が無い場合が多い 他の言語と競ってもあまり意味が無い
405 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 11:23:43.36 ID:M70RZcxI.net] >>396 俺はstringとかarrayとか自作しちゃうかな Cやるなら他言語の標準ライブラリぐらいは自前で実装できないと話にならないよ 何にもないからね
406 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 11:25:52.08 ID:06VRwQlu.net] 必要なもの(だけ)を作る 使いたいけどないなら作る これがC言語
407 名前:デフォルトの名無しさん [2018/08/25(土) 11:28:31.78 ID:OV9APJVg.net] >>397 そういうことじゃなくて C言語のコードを別の言語で書いて変換すれば Cでかく必要ないじゃんってこと
408 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 11:30:03.25 ID:LrSeHAMC.net] >>396 あえて言えばGlibとかですかね。機能は揃ってると思う。 オブジェクト指向っぽいCになれてないとつらいけど…
409 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 11:32:05.97 ID:/11s7nnG.net] >>397 C++が使えません、まで読んだ
410 名前:デフォルトの名無しさん [2018/08/25(土) 11:35:24.37 ID:0r5h6/lL.net] 言語なんか関係ない 知恵遅れなクソがコード書けば クソなコードになる それ以外ない すべて知恵遅れが原因
411 名前:デフォルトの名無しさん [2018/08/25(土) 11:38:10.89 ID:OV9APJVg.net] Cで例えばメモリを操作するコードが100行あるとするよな? そのコードを作成するフレームワークがあるなら それ使えばいいし、Cいらなくねwwってことな
412 名前:デフォルトの名無しさん [2018/08/25(土) 11:39:19.95 ID:0r5h6/lL.net] いちいちな 試験もされてないような知恵遅れが作ったフレームワーク() なんかつかわないからな 障害の原因
413 名前:デフォルトの名無しさん [2018/08/25(土) 11:50:32.60 ID:0r5h6/lL.net] 知恵遅れはまとな思考してれば まともな人間なら書けないようなコードを平気で書くからな やばいぐらい頭悪いコードを それも息するように書くからな しかもその自覚がない オツムに致命的な問題がある アルゴリズムを実現するための言語の問題じゃない アルゴリズムなんかどんな言語でも実現できる 言語なんかただの方言だからな Cが畿内の方言なら C++はエミシの方言 Javaはクマソの方言
414 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 11:57:12.59 ID:0NZIGmlJ.net] >>400 自分は馬鹿ですって言ってるな
415 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 11:59:50.71 ID:yggGxXGy.net] >>408 コーディングもアルゴリズムも数学も出来ない学歴コンプなアホは黙ってろ
416 名前:デフォルトの名無しさん [2018/08/25(土) 12:09:09.86 ID:0r5h6/lL.net] javaはpascalとも混血してる
417 名前:デフォルトの名無しさん [2018/08/25(土) 12:13:02.72 ID:0r5h6/lL.net] pascalはインチキalgol
418 名前:デフォルトの名無しさん [2018/08/25(土) 12:58:06.70 ID:OV9APJVg.net] if文の中を抜けたい場合ってどうすればいいですか? breakはforとwileを抜けるんですよね? ifを抜けるには?gotoは使いたくないです
419 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 13:05:12.45 ID:Q2JYdW4P.net] 意味不明 if文の中ってどういうこと? ただ条件式があるだけだろ
420 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 13:05:57.37 ID:J3tnFs/w.net] goto使え 宗教的に無理ならdo while (0);で囲んでbreak
421 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 13:07:57.58 ID:YF0z4wS0.net] continueかbreak