プロが教えるわが家の防犯対策術!

教えて下さい

使用しない関数を含んだファイルを include した場合、
弊害はありますか?
例えば不必要に実行ファイル、実行時のメモリサイズが大きくなるとか...

よろしくお願いします。

A 回答 (5件)

関数、変数は「参照しない限り、リンクされない」ので、通常は問題ありません。



但し、インクルードファイル内で「グローバル変数を定義(仮定義を除く)」してると、その変数の分、どこかに領域が作られます。

ですが、コンパイラ付属のインクルードファイルでは、上記のような変数定義は無い筈で、上記のような事があるとしたら「自作のインクルードファイルだけ」でしょう。
    • good
    • 0
この回答へのお礼

ありがとうございます
安心しました

お礼日時:2009/01/23 12:15

コンパイルに余分な時間がかかったり、そのヘッダで宣言されている名前が使用できなくなったりします。


出来る限り余分なファイルはincludeしないようにしましょう。
    • good
    • 0

処理系が提供するヘッダに関して言えば「コンパイル時間が増える」以外の悪影響はないはずです. 確かに #2 の言われるように「そのヘッダで宣言された名前が使えなくなる」のですが, 処理系提供のヘッダでは「そのヘッダで宣言されたために使えなくなる名前」はそもそもインクルードしなくても使えないはずです.


もちろん自分で作ったヘッダは別.
    • good
    • 0

処理系が提供するインクルードファイルでも実行ファイルが大きくなる場合があります。


iostreamをincludeするとcin/cout/cerr/clogの初期化コードが埋め込まれます。
    • good
    • 0

コンパイルオプション -E で展開を見ればわかります。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!