Rust part10at TECHRust part10 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト556:デフォルトの名無しさん 21/05/10 10:40:58.67 u82ImyiI.net 後藤さんいい加減にしてくださいよ… 557:デフォルトの名無しさん 21/05/10 13:07:54.71 H09R880S.net Linuxや*BSDなどのカーネルはgoto文が誰に遠慮することもなく堂々と使われてますよ そして可読性は何も損なわれていない 言語屋さんだけじゃないの?構造化でgotoがどうたらとかそれに代わる言語機構が 必要だとか言ってるのは そして新たに言語を学ぶ人が無批判にそれらを盲信することが代々続いてる ようにしか見えない 558:デフォルトの名無しさん 21/05/10 13:38:27.10 FH4+0Y9S.net 多くの言語はハードウェアとしてCPU例外や、I/Oに対する入出力の(ハードウェア的)例外と、多くは 復帰可能なエラー分岐処理にて、プログラミング言語で「包括的に捕捉して後処理」するためにある。 例外の反対者はResult/Option/(Either)のようなものがあるのに、なぜ言語に例外を取り入れて、信頼性を 低下させるような隠された制御フローを導入するのかと主張します。 しかし例えばファイルへの出力で"fwrite"ではOSの上層では実際に書き込まれず、"fclose"で書き込まれたり あるいは"fflush"でメモリー上とディスクが同期されるなどは、同期的な、従来の戻り値を確認しただけでは 正確な判断ができない。(これは言語のライブリーがBufferを使用しているとは別の話、たとえばディスク 容量が足りなくなった場合など、意図するプログラムは失敗する可能性があります。) またResultなどが使用できるの場合は、ハードウェアやIOに依存しない場合にできるだけです。他にも、不正な ゼロ除算などの発生は、カーネルでも、組み込みでも、CPU例外に対しては特定の例外の種類によりあらかじめ 決められたアドレスに強制的にジャンプします。C言語自身はCPUの挙動を定義していませんので、この制御の フローの移動はCプログラミング言語の機能ではなくCPUメーカーの実装です。 つまり、標準のC自体だけでは、統一的にエラー処理を記述するということ自体が出来ていませんし、実行制御 フロー記述し完全掌握してコントロールするという事自体があやふやです。 (ゼロ除算でジャンプしなくてHALTするようなCPUがあるかもしれませんが知りません) 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch