/GF (同一文字列の削除)
更新 : 2007 年 11 月
実行時にプログラム イメージおよびメモリで、同一文字列のコピーが 1 つだけ作成され、プログラム サイズが小さくなります。この最適化処理を文字列プールと呼びます。
/GF
解説
/GF は、読み取り専用として文字列をプールします。
/GF を使用すると、オペレーティング システムではメモリの文字列部分をスワップせず、イメージ ファイルから文字列を読み戻すことができます。/GF で文字列の変更を試みると、アプリケーション エラーが発生します。
文字列プールを使用すると、複数のポインタで複数のバッファを指したつもりでも、それらの複数のポインタで 1 つのバッファを指すことができます。次のコードでは、s と t が同じ文字列で初期化されます。文字列プールを使用すると、s と t は同じメモリを指します。
char *s = "This is a character buffer";
char *t = "This is a character buffer";
メモ : |
---|
エディット コンティニュに対して /Z7、/Zi、/ZI (デバッグ情報の形式) オプションを使用すると、/GF オプションが自動的に設定されます。 |
/O1、/O2 (プログラム サイズ、実行速度) または /O2 を使用するとき、/GF が有効になっています。
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[C/C++] フォルダをクリックします。
[コード生成] プロパティ ページをクリックします。
[文字列プール] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- StringPooling を参照してください。