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


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

C言語なら俺に聞け 145



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]
フォールウオーバー機構を言語レベルで用意すべき






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

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

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