質問: FALSE ) { // エラーログ5 break; } // やりたい処理6 break; } // ログ等処理2 ``` 上記のような実装はC/C++では一般的な書き方なのでしょうか? 2、メソッドの分割について ------------- また、処理が長いメソッドも多いのですが、メソッドを細かく分けると実行速度が遅くなる弊害が発生しやすいなどC/C++としてそういう傾向にあったりするのでしょうか? 細かく分けると遅くなる気はあまりしていないのですが...。
回答: ソースが元々CだったかC上がりの人が書いたのでは? 結構古くからある方法でgoto有害論のおかげでgotoは悪だ!使用禁止!けどエラー時は特定の場所にまとめて飛びたい、というので生まれた手法だったかと。 使う使わないは人によると思いますが、パターンとしてそこまで珍しい書き方でもないかなー、という印象です。 > > C/C++としてそういう傾向にあったりするのでしょうか? > > 細かく分けると遅くなる気はあまりしていないのですが...。 > > > 言語としての傾向ではないと思います。 組み込みとのことなので「理由あって」関数を分けてないなら使用しているマイコンのためじゃないでしょうか? ・メモリが小さくてスタックがあまりとれないからあえて関数化をあまりしない ・割り込みとかタイムクリティカルな処理で関数を飛ぶ時間も惜しい というのがぱっと思いつく理由です。 あとはまぁ、動いてる部分を変えたくないから少しずつ拡張を重ねたせいでダラダラ大きくなった、というのもよくある理由ですね。 大抵の場合はちゃんと関数化したほうがいいと思います。