[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/12 01:51 / Filesize : 317 KB / Number-of Response : 1019
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け 147



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






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<317KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef