
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
私もサイズは気になる方なので、ご参考になれば。
bcc5 で printf() だけのソース 85 バイトをコンパイルすると
.exe は 52,224 バイトでした。
VD++6 で同じ .exe にすると、Release で 40,960 バイト、
Debug で、172,086 バイトでした。
bcc5 はちょっと大きめ程度ではないかと想像しました。
で、削減の方法は link map を取って見るのが確実と思いますが、
私の bcc5 では、統合開発環境風付きですが、link map を取る指定が分かりませんでした。
(make ファイルに記入できるとは思いますが、やっていません。)
#1 の方もお書きですが、link されるルーチンを減らすのがよいと思います。
できれば、stdio.h, string.h は一切使わない。
必要なら、winAPI を使って、自前で標準関数を用意する。モノによっては asm で。
大して得にはなりませんが、global 変数を多用すると生成コードがポインタ load で大きめになることがあります。
逆アセ可能なら、サイズの大きいルーチンを見ると
よいと思います。
global 構造体を参照する場合、一旦 local のポインタに
移して使うとかすると、register 命令に変わってサイズが
減ったりします。
No.1
- 回答日時:
Borland C++ Builder なら、プロジェクトオプションで
プログラムタブを開き、リリースを押すのか一番簡単ではないでしょうか?
行番号などのデバッグ情報を付加しない
共有ランタイムを使用する
コード最適化は、サイズ優先にする
関数のインライン展開を許可しない
等が考えられますが、必ず組み込まれる初期化ルーチンがあったり、関数1つだけ使っていてもその関数が含まれるライブラリ単位でのリンクになったりするので、あまり効果は無いかも。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ILSpyで、デコンパイルできない。
-
エクセルVBAではRound...
-
相互に参照する構造体について
-
OpenCVを Borland C++ Builder...
-
C言語をコンパイル後の膨大なフ...
-
C言語でMIDIを鳴らしたいです。
-
DirectX9SDKが入ってるPCでDi...
-
VBAを何回も作り直して、容量が...
-
外部シンボル "_main"は未解決です
-
漢字のコメントをはずすとコン...
-
windowsでLinuxで作成したソー...
-
戻り値について
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<unistd.h>をVisualStudioでつ...
-
Arduinoに関する質問
-
リリースモードとデバッグモー...
-
C++でデスクトップGUIアプリ開...
-
組込みC開発
-
c言語です コンパイルした時に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
” OS ビルド ” の意味が分か...
-
VBAを何回も作り直して、容量が...
-
エクセルVBAではRound...
-
Makefile作成時の拡張子.oとは?
-
「fatal error C1189」を回避す...
-
C言語でヘッダファイルにグロー...
-
ILSpyで、デコンパイルできない。
-
<math.h>があるのにsqrtが・...
-
外部シンボル "_main"は未解決です
-
マクロ コンパイルがグレーバック
-
セミコロンについて
-
コンパイルエラー:ユーザ定義...
-
【VC++6.0(MFC)】警告「LINK : ...
-
1 つ以上の複数回定義されてい...
-
VB6とInputManソフトの関係
-
C言語でmからnまでの合計を求め...
-
ExcelVBAで『ByRef 引数の型が...
-
コンパイルに失敗しました、と...
-
漢字のコメントをはずすとコン...
-
C言語のコンパイルができません
おすすめ情報