非常に基本的な質問があります。
次のコードスニペットを見てみましょう。
#include<iostream>
int main()
{
std::cout<<"Hello world \n";
}
上記のプログラムでは、「iostream」はコンパイルされますか?
コンパイルするとオーバーヘッドではないですか?
とにかく、iostreamで何も変更するつもりはありませんが、毎回コンパイルされます:-/
これを理解するのを手伝ってください。
非常に基本的な質問があります。
次のコードスニペットを見てみましょう。
#include<iostream>
int main()
{
std::cout<<"Hello world \n";
}
上記のプログラムでは、「iostream」はコンパイルされますか?
コンパイルするとオーバーヘッドではないですか?
とにかく、iostreamで何も変更するつもりはありませんが、毎回コンパイルされます:-/
これを理解するのを手伝ってください。
インクルードは基本的に<iostream>
ソースファイルにコンテンツを貼り付けるので、コンパイルされたと言えます。
コンパイルするとオーバーヘッドではないですか?
時間がかかりますが、を使用するため、インクルードが必要ですstd::cout
。これが、必要なものだけを含め、可能な限り代わりに宣言を使用する必要がある理由の1つです。
できることは、プリコンパイル済みヘッダーを調べることです。
はい、含まれているすべてのヘッダーがコンパイルされます。
はい、それはオーバーヘッドです。そのため、一部のコンパイラにはプリコンパイル済みヘッダーと呼ばれるものがあります。
C++ はかなり古い言語である C に基づいて構築されており、これが示す領域の 1 つであることを思い出してください。
まず、ヘッダーをオブジェクトファイル/実行可能ファイルに実際に「コンパイル」することはできません。ヘッダーには、コンパイラーが正しいコードを生成するためのタイプとその他の情報のみが含まれています。ただし、ファイルを含めて、コンパイラにそれらを解析させて情報を取得することはできます。はい、それは非常に小さなオーバーヘッドかもしれませんが、実際にはそれを含める必要があります。