섹션
.obj 파일에서 섹션을 만듭니다.
#pragma section( "section-name" [, attributes] )
설명
세그먼트 및 섹션의 의미는 이 항목에서 동일하게 사용됩니다.
섹션이 정의되면 컴파일의 나머지 단계에서 유효한 상태로 유지됩니다. 하지만 __declspec(allocate)를 사용해야 합니다. 이렇게 하지 않으면 섹션에 아무 것도 배치되지 않습니다.
section-name은 섹션의 이름이 될 필수 매개 변수입니다. 이 이름은 모든 표준 섹션 이름과 충돌하지 않아야 합니다. 섹션을 만들 때 사용할 수 없는 이름 목록은 /SECTION을 참조하십시오.
attributes는 섹션에 할당하려는 쉼표로 구분된 하나 이상의 특성으로 구성된 선택적 매개 변수입니다. 가능한 attributes는 다음과 같습니다.
read
데이터에 대한 읽기 작업을 허용합니다.write
데이터에 대한 쓰기 작업을 허용합니다.execute
코드가 실행될 수 있도록 합니다.shared
이미지를 로드하는 모든 프로세스에서 섹션을 공유합니다.nopage
섹션을 페이징할 수 없는 것으로 표시합니다. Win32 장치 드라이버에 유용합니다.nocache
섹션을 캐시할 수 없는 것으로 표시합니다. Win32 장치 드라이버에 유용합니다.discard
섹션을 삭제할 수 있는 것으로 표시합니다. Win32 장치 드라이버에 유용합니다.remove
섹션을 메모리에 상주하지 않는 것으로 표시합니다. 가상 장치 드라이버(VxD)만 해당합니다.
특성을 지정하지 않으면 섹션이 read 및 write 특성을 갖게 됩니다.
예제
다음 예제에서 첫 번째 명령은 섹션과 해당 특성을 식별합니다. 정수 j는 __declspec(allocate) 로 선언되지 않았기 때문에 mysec에 삽입되지 않습니다. j는 데이터 섹션으로 이동합니다. 정수 i는 __declspec(allocate) 저장소 클래스 특성의 결과로 mysec로 이동합니다.
// pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;
__declspec(allocate("mysec"))
int i = 0;
int main(){}