1 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 22:13:58.98 ID:9/te2eSJ0.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言語なら俺に聞け 144 https://mevius.5ch.net/test/read.cgi/tech/1514025223/ 次スレを立てる時は本文の1行目に以下を追加して下さい !extend:on:vvvvv:1000:512 VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
339 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 12:10:45.59 ID:WqdE+VIZM.net] いやらCね
340 名前:デフォルトの名無しさん [2018/03/09(金) 12:13:57.64 ID:LlK9d7kba.net] 頭おかC
341 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 16:36:39.04 ID:AbBnYUJz0.net] 符号なし64ビット整数を64ビット右シフトすると 0にならないでそのままの時や変な別の値になるときがあるんですけど コンパイラーのバグですか?
342 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 17:10:28.27 ID:aCtfd81Na.net] >>329 もしかしてですが、 悪質なコンパイラに騙されているのでは?
343 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 17:10:41.68 ID:AbBnYUJz0.net] fast-uploader.com/file/7076138459666/ 2つのファイルが無いと再現できなかったのでソースファイルを アップロードしました コンパイルしてなぜ0にならないのか教えてください。
344 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 17:11:34.80 ID:er4JdT2d0.net] >>329 a >> b で、bの値がaの型のビット数「以上」のときは未定義動作、 に該当するから、コンパイラのバグではない。…と思う。 本当は規格の引用をすべきなんだが、どなたか頼む。
345 名前:デフォルトの名無しさん [2018/03/09(金) 17:12:19.58 ID:AbBnYUJz0.net] コンパイラーは gcc version 7.3.0 (Rev1, Built by MSYS2 project) で試しました。 悪質なコンパイラーに騙されているのかもしれませんね。
346 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 17:25:01.13 ID:AbBnYUJz0.net] ファイル1 #include<stdio.h> #include<stdint.h> uint64_t f(uint8_t a,uint64_t b){ printf("%llx\n", b>>(64-a)); return b>>64 -a;} void e(uint8_t a){ f(0,0x8318318318318318);} void g(uint8_t a){ f(a,0x8318318318318318);} ファイル2 #include<stdint.h> uint64_t f(uint8_t a,uint64_t b); void g(uint8_t a); void e(uint8_t a); int main(void) { g(0); e(0); return 0; } この二つのファイルをコンパイルして実行してみてください。 よろしくお願いします。
347 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 17:27:15.48 ID:K2/JY7Cc0.net] その昔、CPUのバグで16bitレジスタを32bitシフトすると0にならないとかいうのなかったっけ
348 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 17:45:47.23 ID:AbBnYUJz0.net] これからは64ビットのシフト使ってるコードは全てバグの温床になるな。
349 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 18:10:27.57 ID:Z9n7UPH0M.net] C11の6.5.7の3より。 If the value of the right operand is negative or is greater than or equal to the width of the promoted left operand, the behavior is undefined.
350 名前:332 mailto:sage [2018/03/09(金) 20:12:23.00 ID:er4JdT2d0.net] >>337 フォローありがとう。この部分ですわ。 6.5.7 Bitwise shift operators ビットシフト演算子 の項。 もしも右オペランドの値が負、または汎整数拡張後の左オペランドの(ビット)幅より 大きいか等しい場合、振る舞いは未定義である。 と言った感じかな。 promoted left operand の部分が「汎整数拡張後の左オペランド」で 合ってるのか自信ないけど。
351 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 21:17:55.13 ID:ysNVe5/v0.net] 64bit 符号なしを、64bit シフトするって、そもそも無意味だろ 元のビットが残っていない。 全部のビットが変わっている! 意味があるのは、6
352 名前:3bit まで [] [ここ壊れてます]
353 名前:デフォルトの名無しさん [2018/03/09(金) 22:22:53.87 .net] >>339 0になってくれれば余計な分岐やら演算やらを省けるかもしれないだろ
354 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 22:57:22.97 ID:dpc+cSNT0.net] 0クリアする最適な方法なの?
355 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 23:23:40.83 ID:ysNVe5/v0.net] 1010 XOR 1010 ---- 0000 n は任意のビットで、n XOR n で、全ビット0にできる
356 名前:デフォルトの名無しさん [2018/03/09(金) 23:25:22.45 .net] >>342 そんなん全ビット読まなきゃいけないじゃん
357 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 23:29:26.36 ID:9IZd/e860.net] n and 030 とかで任意ビットのonはわからないか?
358 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 23:47:39.35 ID:U4YZHGfl0.net] >0クリア つ ゼロレジスタ
359 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 00:03:47.54 ID:a2p+alti0.net] 1 bit づつじわじわシフトするなら何とかなるんだけどな。 https://paiza.io/projects/D9KFwMa77ifp6AOgAaO2PQ
360 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 05:55:47.17 ID:jel/5KgH0.net] 定数リテラルにullって使ってなくてもだいじょうぶなんだっけ?
361 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 12:12:18.84 ID:Z1L9sOVC0.net] >>343 xor は少サイクルなのが利点ですね。
362 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 13:08:59.94 ID:qojMr6PP0.net] アセンブリコードの0にする方法はxorやのう
363 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 13:24:16.81 ID:+HpaswK40.net] CPU依存すぎる
364 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 13:47:45.54 ID:f+B2oLbA0.net] Z80時代の爺だろ、放置してやれ
365 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 14:18:47.85 ID:J/EnQN8G0.net] パチンコ屋さん
366 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 15:25:43.76 ID:ps/htySn0.net] 今じゃ乗除演算さえワンサイクルの時代に何アホな話してんだ?
367 名前:デフォルトの名無しさん [2018/03/10(土) 16:20:41.72 ID:HvD6qwC3a.net] アセンブラについてはどうしても自分でアセンブリ言語で書かねばならない事態に陥らない限り書くことはないだろうなあ。
368 名前: mailto:sage [2018/03/10(土) 16:50:09.76 ID:+Ww908Qw0.net] >>354 そうそう、printf デバッグでは力不足でもう否が応でも gdb に行くのを逃げ回っているのと同じです
369 名前:デフォルトの名無しさん [2018/03/10(土) 17:18:49.50 ID:a2p+alti0.net] gdb は普通に使うなあ。
370 名前:デフォルトの名無しさん [2018/03/10(土) 17:35:13.89 ID:5pXC+BOTF.net] printfなめたらいかん
371 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 17:41:43.93 ID:ps/htySn0.net] 割り込みん中でprintf使って暴走してデバッグが出来なかった思い出。
372 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 18:10:52.64 ID:a2p+alti0.net] 俺はシグナルハンドラの中でログ出力しようとして FILE * 経由で fprintf() 等で出力したら そのライブラリの中でデッドロックしてハマった。 kill -ABRT で core dump させて gdb で core ファイルと共に読ませてようやっと停止箇所がわかった。
373 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 20:11:43.97 ID:fNi+2/6HM.net] gdbマスターしてからprintデバッグバカにしてたけど printデバッグ自動化してからprintデバッグ信者になった 無論レアケースデバッグはgdb使うけどね
374 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 01:20:23.17 ID:ry5KQfC80.net] printf() をデバッグで使う時はバッファリングを考慮していないとハマる事がある。 それと stdout と stderr と両方に出る可能性がある場合にその順序が食い違う可能性もある。 シグナルハンドラ内やマルチスレッドプログラムで使ってうまく行かない事もある。 その辺を全て考慮するならいいだろうが、しかし、それなら初めからログファイルに出力される ように作った方が良いような気もする。
375 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 02:00:44.19 ID:22CnVBlaM.net] printデバッグなら専用モジュール作るべきだな 俺は時刻、関数名、コンテキストIDを付けて 標準出力かファイルにはかせてる
376 名前:デフォルトの名無しさん [2018/03/11(日) 09:19:44.59 ID:zWe+i43K0.net] そこまでするならsyslog
377 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 10:20:33.73 ID:szqHStkk0.net] >>361 setvbuf忘れなければ済む話だよパパ
378 名前:デフォルトの名無しさん [2018/03/11(日) 14:10:54.85 ID:ry5KQfC80.net] >>363 そだねー >>364 本当にそれだけで大丈夫かね? この頃のライブラリは多分マルチスレッドでもちゃんと動くように内部でロック掛けている部分があると 思うんだけどね、例えばシグナルハンドラの中でそのロックを掛けている最中にまたシグナルが来て 同じシグナルハンドラに入ると同じロックを掛けようとしてデッドロックするなんてことが起こり得ると 思うんだが。(まあその程度のことでデッドロックしてしまうこと自体がバグかも知れんが。それ以前に シグナルハンドラの中でprintf()は使うなって話でもあるか…)。
379 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 15:06:05.16 ID:szqHStkk0.net] >>365 ロケールがCならprintfだってスレッドセーフだしぎりぎりシグナルセーフだよパパ
380 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 15:33:10.91 ID:UYIqocxw0.net] 世の中には完全なCライブラリを実装していないタイニーなマシン用のサブセットだってあるんだよ坊や。
381 名前:デフォルトの名無しさん [2018/03/11(日) 16:08:45.67 ID:sEfAJdP70.net] それはCじゃないから、このスレで話し合っても無駄では。
382 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 16:12:01.01 ID:UYIqocxw0.net] Cは言語仕様であって、ライブラリ仕様は別枠だろ?
383 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 16:46:35.93 ID:iUqzSqql0.net] 30年以上前だったかな、あるメーカーのプリンタファーム開発用Cコンパイラが配列要素上限が255だった 当時アスキーネットでこれを聞いたvoid氏が呆れていたようだ。
384 名前:デフォルトの名無しさん [2018/03/11(日) 17:10:10.38 ID:sEfAJdP70.net] インストラクションに8ビットまでの即値を組み込めるなら、その制限によって(そのような最適化が必要なプロセッサにとって)強烈な最適化をかけられるから、アリやナシやと問われればアリのような感がある。
385 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 17:20:27.39 ID:Dtt3qpb50.net] Cライクって言っときゃいいのにCと名乗ってしまうから イチャモンつけたいヤツの標的になる
386 名前:デフォルトの名無しさん [2018/03/11(日) 17:33:57.41 ID:sEfAJdP70.net] 本場ドイツ直輸入ポークソーセージを買ったら魚肉ソーセージだったような感じですね。 つまり詐欺です。
387 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 17:36:14.99 ID:szqHStkk0.net] >>369 それ言ったらバッファリングの話題もCの話にならないだろぉオヤジィ
388 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 17:37:59.08 ID:iUqzSqql0.net] 何が正当な教義かについて議論したければ、上級者スレでやってね
389 名前:デフォルトの名無しさん [2018/03/11(日) 18:04:00.35 ID:sEfAJdP70.net] こういう掲示板で宗教対決を規制したら過疎化するんじゃないだろか。
390 名前:デフォルトの名無しさん [2018/03/11(日) 18:26:39.19 .net] >>370 まるでUvaみたいな制限だな(藁
391 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 18:45:46.67 ID:QedwXA9H0.net] >>366 マルチスレッド版のライブラリーがあるかと 行出力中にスレッドが切り替わらない
392 名前:デフォルトの名無しさん mailto:sage釣堀 [2018/03/11(日) 18:48:04.93 ID:QedwXA9H0.net] >>374 なお初代K&Rにはライブラリーの仕様は含まれない。 WhiteSmithとかはprintfが実装されてない
393 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 20:24:48.92 ID:1mhcZmSWa.net] >>372 セントロニクス
394 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 21:13:40.31 ID:Dtt3qpb50.net] 5Vシングルエンドがそのままコネクタに出てるアレか アレを基板に直付けするアフォが多くて頭クラクラした
395 名前:デフォルトの名無しさん [2018/03/11(日) 23:26:14.78 ID:3FTmPjnp0.net] for(i=0;i<10;i++) scanf("%d",&num[i]) で入力した変数がiに入ってしまうことがあるのですがなぜですか?
396 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 23:59:04.31 ID:Sn9rQkOCM.net] numのサイズが10ないとか。
397 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 00:02:45.79 ID:9wDOvV2B0.net] ソース全部晒せ
398 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 07:51:36.03 ID:6B2Hj+UH0.net] do whileはいらない子?
399 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 08:04:24.78 ID:uoSNo/WDM.net] アルゴリズムによってはdo whileの方が素直なときがある。まれだが。マクロを本当の関数っぽく使うのにdo while (0)使うハックがある。まれだが。 コンパイラによってはdo whileの方が速いコード出す。まれだが。
400 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 08:36:16.07 ID:SpziwmuNM.net] >>370 プリンタっつーてもピンキリだからなぁ レシートプリンタとかならその程度で充分かもしれん
401 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 09:25:52.84 ID:kO6Vn+sG0.net] >>385 んなこたーない whileのほうが使用頻度は高いけど 本質的に後判定なロジックはそんなに珍しくもない
402 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 09:30:32.07 ID:Cd8AY8RG0.net] do〜whileは、必ず一回は処理してくれるから便利。
403 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 09:31:53.62 ID:kO6Vn+sG0.net] 繰り返し対象処理が実行される条件がブレるから気をつけないといけないけどね
404 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 10:16:52.94 ID:Igle62xq0.net] do{continue;}while(false); で無限ループになるのウケる。
405 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 10:19:34.77 ID:kO6Vn+sG0.net] 391 error: undeclared symbol 'false'
406 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 10:42:19.80 ID:wLVR4ID4a.net] >>389 女に見習わせたいな
407 名前:デフォルトの名無しさん [2018/03/12(月) 12:03:54.32 ID:A4+OWJSs0.net] こんな書き方たまにする do{ ・・・ 条件 break; ・・・ 条件 break; ・・・ 条件 continue; ・・・ 条件 break; ・・・ 条件 continue; ・・・ }while(0);
408 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 12:10:22.44 ID:rLGzoMUT0.net] >>387 一応汎用のレーザープリンターなんだ 30年って一寸行き過ぎだな 95が出てきた頃だから、20年前か
409 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 12:11:48.84 ID:Igle62xq0.net] >>394 GOTOを怖がるな。 俺は反GOTO教は抜けた。 まぁ乱用しようとも思わんけど。 >>392 文脈で察してくれ。 boolはいったことだし。
410 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 15:52:19.83 ID:bCYSOHOV0.net] B 判定 A B 判定 A B … みたいに do { } while () のブロックの途中に飛び込んで開始するようなのが悩ましい goto ENTER; do { A(); ENTER: B(); } while(条件);
411 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 17:04:49.51 ID:Ro63JAiYH.net] 出口が複数は可だけどエントリーポイントが変なとこにあるのは読みにくいからやめたほうがいい。 この例の場合はB Aの無限ループにして、Bのあとの条件で脱出するのが定石。
412 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 17:15:21.51 ID:bCYSOHOV0.net] for(;;) { B(); if (条件) break; A(); }; こんな感じですか。 やっぱり頭から入っていくほうが読みやすいし…
413 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 17:24:28.52 ID:rLGzoMUT0.net] 処理内容がそうならそういうことなんだろうが、 見ていて気持ちが悪くなるロジックだな、すまん
414 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 17:31:42.39 ID:kO6Vn+sG0.net] エントリーポイントが変なとこって、mainだって1行目にはまずならないしな 実装されることなく廃止になったキーワードにentryつーのがあって そいつがおそらくは1行目に entry main; とか持ってこれるようにするつもりだったのかもな
415 名前:デフォルトの名無しさん [2018/03/12(月) 17:41:10.71 ID:mlDQMbRTa.net] >>397 昔の BASIC を思い起こさせる goto の使い方だなw
416 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 17:58:00.69 ID:DBOT0xK9M.net] gotoは禁止はしないが、異常系の終了処理にジャンプするパターンだけ許容だな。
417 名前:デフォルトの名無しさん [2018/03/12(月) 18:04:50.67 ID:FajbO2mAF.net] exceptionさえあれば
418 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 18:06:32.58 ID:bCYSOHOV0.net] コンストラクター/デストラクターのような機構があれば 異常時の後始末は割と楽に書けるっすね
419 名前:デフォルトの名無しさん [2018/03/12(月) 18:09:46.06 ID:FajbO2mAF.net] atexit()はあるぞ
420 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 18:2
] [ここ壊れてます]
421 名前:5:47.87 ID:rLGzoMUT0.net mailto: 異常の場合は,例外処理をしてから続行したい [] [ここ壊れてます]
422 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/12(月) 19:11:12.71 ID:HQXq1VOq0.net] つ setjmp
423 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 19:32:23.64 ID:6OIrRNruM.net] >>408 volatileをつけ忘れて最適化で暴走するなんてよくあること。
424 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 20:42:20.27 ID:SpziwmuNM.net] >>395 1995年頃でLBPだと16bitから32bit CPUに移行する頃だから配列サイズが最大255なんて言うのはさすがに見たことないわ ちなみにうちはSH-2+独自モニタからR3000+VxWorksへの移行期だった コンパイラもチップベンダーかOSベンダーのものを使ってた
425 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 21:14:21.91 ID:hz29p2j/p.net] gotoを後始末以外の使い方して変な所に飛ばしたりするから禁止って言われるんだよな。
426 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 22:09:38.43 ID:kO6Vn+sG0.net] 昔のBASICにはON ERROR GOTOとかON ERROR GOSUBつーのがあって 異常系から復帰できたんだよな、それがCやC++にはない
427 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 22:12:32.16 ID:rLGzoMUT0.net] setjmp longjmp
428 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 22:16:55.21 ID:kO6Vn+sG0.net] RESUME NEXTに相当する処理はsetjmp.hにはない
429 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 23:49:45.06 ID:+NwoaeJY0.net] gfortranで言うところのfcheck=allを設定した時のように配列の範囲外アクセスを検知したいのですが、いい方法はありますか?
430 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/13(火) 00:26:13.95 ID:zisSqBer0.net] boundschecker 使えばよろし
431 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 00:43:16.47 ID:LMrPxj1+0.net] Linuxなので代用を探していたらvalgrindに辿り着きました ありがとうございます
432 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 03:11:31.37 ID:a0aOTtHi0.net] 大域ジャンプはダメだ。
433 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 07:50:52.88 ID:H/7hRIr60.net] 初期化 タイトル ... GOTO 本編 GAME OVER ... GOTO タイトル ゲーム本編 ... GOTO GAME OVER
434 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 08:44:52.34 ID:a0aOTtHi0.net] >>419 よくあるダメなゴトーさん。
435 名前:デフォルトの名無しさん [2018/03/13(火) 10:00:11.49 ID:mZm9h8PZa.net] >>412 まあ、ないけど、エラーになったら自分でif文使って分岐すれば良いだけでは? C言語は単に言語レベルでのそういう便利機能が少ないってだけで実現する方法は内部的な動作まで考えたら結局は同じにしかならんと思うよ、
436 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 10:29:21.12 ID:FbdkMN9Up.net] C言語はマクロアセンブラから派生した感じなんで、言語体系はお世話にも良いとは言えないんだよな。 当時はマシン語で演算結果フラグで条件ジャンプや条件コールしてた煩わしさから開放されただけでも有り難かったんだ。 そんなチープな言語にオブジェクト指向だの例外処理だのとか求めて迷走したのがC++ ええい、いっそ作り直してしまえって出したのがJavaやC# だからC言語使う時点で諦めれ。
437 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 11:04:12.06 ID:92t/zLSk0.net] >>421 そのif文でゴチャゴチャしだしたら「例外処理」を名乗れない
438 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 11:54:23.49 ID:a0aOTtHi0.net] 基本的にウオーターフォールを守るのが大事やな。 そのうえでどこに飛びたいかって感じ。
439 名前:デフォルトの名無しさん [2018/03/13(火) 12:12:14.52 .net] フォールウオーバー機構を言語レベルで用意すべき