2015. 3. 19. 02:13ㆍ프로그래밍/지식창고
맡은 부분
code_seg, comment, component, conform
1. code_seg
MSDN
기능
함수가 .obj 파일에 저장되는 텍스트 세그먼트를 지정합니다.
형식
#pragma code_seg( [ [ { push | pop }, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] )
인자 설명
Push(선택적 요소)
Pop(선택적 요소) 내부 컴파일러 스택 맨 위에서 기록을 제거한다.
identifier(선택적 요소)
identifier를 사용하면 한 번의 pop 명령으로 여러 레코드를 팝할 수 있다.
"segment-name"(옵션)
"segment-class"(옵션) 무시되긴하지만 2.0 이전 버전의 C++ 버전과의 호환성을 위해 포함되었다.
블로그 검색
#pragma code_seg <seg_name> <"seg_class"> <group>
code_seg pragma는 함수들을 위치시킬 group, class 또는 segment의 이름을 줄 수 있도록 지시합니다.
만일 option없이 사용하였다면 함수의 배치를 위해서 default code segment가 사용됩니다.
2. comment
MSDN
기능
주석 기록을 개체 파일 또는 실행 파일에 배치합니다.
형식
#pragma comment( comment-type [,"commentstring"] )
인자 설명
블로그 검색
#pragma comment (comment type, "string")
comment 프라그마는 출력되어지는 file에 주석을 기록시킬것을 지시합니다.
comment type에 올수 있는 값들은 다음중의 하나가 될것입니다.
* compiler
오브젝트(실행) 파일에 컴파일러의 이름과 버전을 추가합니다.
comment string이 없으면 링커는 이 레코드를 무시합니다.
* exestr
linker가 ".OBJ" file에 string을 기록합니다. 이렇게 기록된 string은
실행파일내부에 기록되어지며, 이것은 결코 메모리로 load되지 않습니다.
하지만 적당한 파일 검색 유틸리티를 사용하여 실행파일에서 string을
찾아볼 수 있습니다.
* lib
오브젝트 파일에 library search record에 comment string으로 주어진 라이브러리 이름을 추가합니다.
디폴트 라이브러리처럼 동작하게 됩니다.
library에 새로운 module을 추가하는 경우 에만 comment 프라그마를 사용하여
linker에게 결과 file에 명시할 수 있도록 지시할 수 있습니다. 다시 말하면 기존에 작성되어진
module에는 comment 프라그마를 사용하여 string을 추가 시킬수 없습니다.
새롭게 library를 작성한다면 예외일 수 있겠지요.
linker는 최종의 library에서 string에 명시된 library module 이름을 포함 합니다.
여러개의 module들도 이름지어질 수 있으며 이름을 만들기 위하여 linke되어집니다.
* linker
오브젝트 파일에 linker option을 지정합니다.
* user
오브젝트 파일에 일반적인 주석을 추가합니다.
교수님 지식인 답변
: 이 지시자는 라이브러리를 인클루드 할때 사용을 많이 합니다. 다른 명령들도 사용하는데 대표적인 것들은 compiler, exestr, lib, linker, user 등이 있습니다.
사용방법은 #pragma comment(lib,"msimg32.lib") 와 같이 사용합니다.
기본형식은 #prgma comment( comment_type, "코멘트로 사용할 명령 " )
3. component
MSDN
기능
소스 파일 안에서 브라우저 정보나 종속적인 정보의 수집을 제어합니다.
형식
#pragma component( browser, { on | off }[, references [, name ]] )
#pragma component( minrebuild, on | off )
#pragma component( mintypeinfo, on | off )
인자 설명
browser
수집을 설정하거나 해제할 수 있으며 정보가 수집됨에 따라 특정 이름을 무시하도록 지정할 수 있습니다.
설정 또는 해제를 사용하면 pragma 정방향에서의 찾아보기 정보 수집을 제어합니다.
#pragma component(browser, off) // 컴파일러에서 찾아보기 정보 수집을 중지합니다.
#pragma component(browser, off, references) // 컴파일러에서 참조 정보 수집을 중지합니다.
#pragma component(browser, off, references, DWORD) // 해당 지점부터 DWORD에 대한 참조를 무시합니다.
#pragma component(browser, on, references, DWORD) // on을 통해 다시 참조할 수 있습니다.
minimal rebuild
Visual C++ 최소 다시 빌드 기능을 사용하려면 컴파일러에서 C++ 클래스 종속성 정보를 만들고 저장해야 합니다.
이러한 작업은 디스크 공간을 사용합니다.디스크 공간을 절약하기 위해 예를 들어 변하지 않는 헤더 파일에서와 같이 종속성 정보를 수집할 필요가 없을 때마다 #pragma component( minrebuild, off )를 사용할 수 있습니다. 종속성 수집을 다시 설정하기 위해 변하지 않는 클래스 다음에 #pragma component(minrebuild, on)를 삽입합니다.
Reduce Type Information
4. conform
MSDN
기능
/Zc:forScope 컴파일러 옵션의 런타임 동작을 지정합니다.
형식
#pragma conform(name [, show ] [, on | off ] [ [, push | pop ] [, identifier ] ] )
인자 설명
더 알아보기 /Zc:forScope
'프로그래밍 > 지식창고' 카테고리의 다른 글
자료구조 관련 용어정리 (0) | 2015.04.11 |
---|---|
[VS] 컴파일 하자마자 cmd창이 사라진다면? (0) | 2015.04.06 |
가상 함수 테이블과 가상 포인터 관련 자료 (0) | 2015.04.02 |
함수와 프로시저 정리 (0) | 2015.03.13 |
바인딩 조사 (0) | 2015.03.13 |
수도코드, 순서도, 마인드맵 조사 (0) | 2015.03.11 |
고용센터 특강 입사지원서 작성요령 (0) | 2015.02.16 |