/GF(중복 문자열 제거)
컴파일러가 실행 중에 프로그램 이미지와 메모리에 동일한 문자열의 단일 복사본을 만들 수 있도록 합니다. 더 작은 프로그램을 만들 수 있는 문자열 풀링이라는 최적화입니다.
구문
/GF
설명
/GF를 사용하는 경우 운영 체제는 메모리의 문자열 부분을 교환하지 않으며 이미지 파일에서 문자열을 다시 읽을 수 있습니다.
/GF 는 문자열을 읽기 전용으로 풀링합니다. /GF에서 문자열을 수정하려고 하면 애플리케이션 오류가 발생합니다.
문자열 풀링을 사용하면 여러 버퍼에 대한 여러 포인터로 의도된 항목이 단일 버퍼에 대한 여러 포인터가 될 수 있습니다. 다음 코드 s
t
에서는 동일한 문자열로 초기화됩니다. 문자열 풀링으로 인해 동일한 메모리를 가리킵니다.
char *s = "This is a character buffer";
char *t = "This is a character buffer";
참고 항목
편집 및 계속에 사용되는 /ZI 옵션은 /GF 옵션을 자동으로 설정합니다.
참고 항목
/GF 컴파일러 옵션은 각 고유 문자열에 대해 주소 지정 가능한 섹션을 만듭니다. 기본적으로 개체 파일에는 최대 65,536개의 주소 지정 가능한 섹션이 포함될 수 있습니다. 프로그램에 65,536개 이상의 문자열이 포함된 경우 /bigobj 컴파일러 옵션을 사용하여 더 많은 섹션을 만듭니다.
/O1 또는 /O2를 사용하는 경우 /GF가 적용됩니다.
Visual Studio 개발 환경에서 이 컴파일러 옵션을 설정하려면
프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.
구성 속성>C/C++>코드 생성 속성 페이지를 선택합니다.
문자열 풀링 사용 속성을 수정합니다.
프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면
- StringPooling을(를) 참조하세요.