ページ 1 / 1
実行ファイルの容量
Posted: 2009年5月05日(火) 18:29
by チルチル
注釈は機械語に変換されないから注釈を1万行書いたとしても実行ファイルは1バイトも増えないんですか?
あと分割コンパイルをするとヘッダファイルをインクルードしたりエクスターン宣言とかをしますが
その場合は分割コンパイルをしなかった場合に比べて実行ファイルの容量が増えるのでしょうか?
Re:実行ファイルの容量
Posted: 2009年5月05日(火) 19:28
by 初級者
私だったら、まず実験してみます。
Re:実行ファイルの容量
Posted: 2009年5月05日(火) 19:48
by チルチル
それはまあそうなんですけど、多分目に見えるほどの差は出ないと思うので・・
Re:実行ファイルの容量
Posted: 2009年5月05日(火) 20:40
by box
コメントは、コンパイルの前に、何も書かなかったものと解釈します。
したがって、コメントを1万行書いても1億行書いても、
できあがる実行ファイルの大きさは同じです。
Re:実行ファイルの容量
Posted: 2009年5月05日(火) 21:13
by チルチル
そうなんですか~
ところでまた疑問が出てきたんですけど
#defineは普通に書くのより容量が増えますか?
Re:実行ファイルの容量
Posted: 2009年5月05日(火) 21:15
by たかぎ
C言語の話だとして...
通常、注釈はどれだけ書いても実行ファイルのサイズには影響しません。
ただし、例外もあります。
1. CINTのようなインタープリタの場合
実行ファイル=ソースファイルですので、コメントのサイズがそのまま実行ファイルのサイズに反映されます。
2. コメントごとデバッグ情報を埋め込む場合
当然、コメントのサイズに比例して、ソースファイルのサイズが増加します。
分割コンパイルの場合、最適化がある程度制限されるので、実行ファイルのサイズに影響が出ます。
ただし、大きくなるか小さくなるかは状況次第です。
Re:実行ファイルの容量
Posted: 2009年5月05日(火) 21:36
by チルチル
あ~小さくなる場合もあるんですか・・
よくわかりました、
どうもありがとうございます。
Re:実行ファイルの容量
Posted: 2009年5月05日(火) 21:47
by たかぎ
> あ~小さくなる場合もあるんですか・・
念のため補足しておきます。
分割コンパイルした方が小さくなる場合ですが...
分割しないときに、最適化によってやや大きめの関数がインライン置換される場合が考えられます。
関数を外部定義にすればインライン置換されませんので、結果として実行ファイルは小さくなります。