プロジェクトに複数のコード ファイルを使用する利点は何ですか? (C++) C++ プロジェクトなどで複数のコード ファイルを使用しないことの (技術的またはその他の) 利点があるかどうかを知りたいですか?
いくつかのファイルに分割することは、単なる人間の行為ですか? 可視性/最適化の観点から、マシンがそれらすべてを一度に処理する方が良いのではないでしょうか?
プロジェクトに複数のコード ファイルを使用する利点は何ですか? (C++) C++ プロジェクトなどで複数のコード ファイルを使用しないことの (技術的またはその他の) 利点があるかどうかを知りたいですか?
いくつかのファイルに分割することは、単なる人間の行為ですか? 可視性/最適化の観点から、マシンがそれらすべてを一度に処理する方が良いのではないでしょうか?
すべてを 1 つのファイルに入れると、ファイル レベルの静的で匿名の名前空間の目的が無効になります (また、extern 宣言が不要になります)。
ただし、コンパイラにはあまり効果がありません。最適化などについては、グローバルな可視性が必要な部分をリンカーに実装するだけです (現在のほとんどのリンカーには、そのような最適化/コード生成機能が含まれています)。
これにより、完全な再構築の全体的な時間が短縮されます (または少なくとも短縮される可能性があります)。個別のソース ファイルを使用すると、ヘッダーが含まれている各ソース ファイルの各ヘッダーを再コンパイルすることになります。ソース ファイルが 1 つしかない場合は、これらを 1 回だけコンパイルします (ただし、プリコンパイル済みヘッダーを使用すると、少なくともそれらを使用する場合は、おそらくほとんど問題にならないレベルまでこれを減らすことができます)。
実用的な観点からは、通常はビルド時間が大幅に短縮されます。ほとんどの人は物事を分離するのにかなり苦労するので、プログラムの一部を変更した場合、プログラムのかなり小さな部分を再コンパイルするだけで済みます。真に小さなプログラムではなく、何か変更を加えるたびにすべてを再コンパイルしなければならないのは、完全に管理不能です。まともなサイズのプログラムの場合、ビルド時間は数秒から数分に変わります。
それは実際には微妙に壊れた質問です。他の質問で回答された基準の 1 つを満たす場合、つまり、ファイルまたはプロジェクトが「十分に大きい」ため、分割する方が管理しやすい場合にのみ、ファイルを分割するのが有利です。そのような基準が満たされない場合、利点はありません。したがって、この質問に対する答えは、「ファイルを分割する理由がどれも当てはまらない場合は、分割しないでください」です。彼らは通常、中規模のプロジェクトでも行います。それ以外の具体的な例を挙げると、「Hello World」は通常、1 つのファイルに保持する必要があります。
プログラムを電子メールの添付ファイルとして送信する場合は、ファイルを 1 つだけ添付する必要があります。
すべてが 1 つのコンパイル ユニットにある場合、コンパイラはより多くの最適化を実行できる可能性があります。そのため、sqlite3 はそのように配布されます。
プロジェクトに複数のコード ファイルを使用する利点は何ですか? (C++)コードを分割すると多くの利点があることがわかります。そうしないと、それらすべてが失われます。
コードを分割しない唯一の利点は、非常に小さなプロジェクトで作業している場合です。その場合、すべてを 1 つのファイルに保持する方が便利です。
十分な大きさのほとんどのプロジェクトには、複数のファイルがあります。開発中は、それらに対する抵抗できない (衝動) 必要性を感じるだけです。何千もの行を前後にスクロールして編集するのが好きな人はいますか?
はい、それは人道的なことです。それらを理解できるようにするには、物事を分割する必要があります。より小さなコードで作業する必要があります。