0

非常に基本的な質問があります。

次のコードスニペットを見てみましょう。

#include<iostream>
int main()
{
   std::cout<<"Hello world \n";
}

上記のプログラムでは、「iostream」はコンパイルされますか?

コンパイルするとオーバーヘッドではないですか?

とにかく、iostreamで何も変更するつもりはありませんが、毎回コンパイルされます:-/

これを理解するのを手伝ってください。

4

3 に答える 3

2

インクルードは基本的に<iostream>ソースファイルにコンテンツを貼り付けるので、コンパイルされたと言えます。

コンパイルするとオーバーヘッドではないですか?

時間がかかりますが、を使用するため、インクルードが必要ですstd::cout。これが、必要なものだけを含め、可能な限り代わりに宣言を使用する必要がある理由の1つです。

できることは、プリコンパイル済みヘッダーを調べることです。

于 2012-08-01T04:47:15.970 に答える
1

はい、含まれているすべてのヘッダーがコンパイルされます。

はい、それはオーバーヘッドです。そのため、一部のコンパイラにはプリコンパイル済みヘッダーと呼ばれるものがあります。

C++ はかなり古い言語である C に基づいて構築されており、これが示す領域の 1 つであることを思い出してください。

于 2012-08-01T04:50:51.593 に答える
0

まず、ヘッダーをオブジェクトファイル/実行可能ファイルに実際に「コンパイル」することはできません。ヘッダーには、コンパイラーが正しいコードを生成するためのタイプとその他の情報のみが含まれています。ただし、ファイルを含めて、コンパイラにそれらを解析させて情報を取得することはできます。はい、それは非常に小さなオーバーヘッドかもしれませんが、実際にはそれを含める必要があります。

于 2012-08-01T04:48:48.450 に答える