section
pragma
OBJ 파일에 섹션을 만듭니다.
구문
#pragma section( "
section-name"
[,
특성 ])
설명
용어 세그먼트 와 섹션 은 이 문서에서 동일한 의미를 갖습니다.
섹션이 정의되면 나머지 컴파일에 대해 유효한 상태로 유지됩니다. 그러나 반드시 사용해야 __declspec(allocate)
합니다. 또는 섹션에 아무 것도 배치되지 않습니다.
section-name 은 섹션의 이름이 되는 필수 매개 변수입니다. 이 이름은 모든 표준 섹션 이름과 충돌하지 않아야 합니다. 섹션을 만들 때 사용하지 않아야 하는 이름 목록을 참조 /SECTION
하세요.
특성 은 섹션에 할당할 하나 이상의 쉼표로 구분된 특성으로 구성된 선택적 매개 변수입니다. 가능한 특성 은 다음과 같습니다.
attribute | 설명 |
---|---|
read |
데이터에 대한 읽기 작업을 허용합니다. |
write |
데이터에 대한 쓰기 작업을 허용합니다. |
execute |
코드가 실행될 수 있도록 합니다. |
shared |
이미지를 로드하는 모든 프로세스에서 섹션을 공유합니다. |
nopage |
섹션을 페이지를 표시할 수 없음으로 표시합니다. Win32 디바이스 드라이버에 유용합니다. |
nocache |
섹션을 캐시할 수 없는 것으로 표시합니다. Win32 디바이스 드라이버에 유용합니다. |
discard |
섹션을 삭제 가능으로 표시합니다. Win32 디바이스 드라이버에 유용합니다. |
remove |
섹션을 메모리 상주하지 않음으로 표시합니다. 가상 디바이스 드라이버(VxD)만 해당합니다. |
특성을 지정하지 않으면 섹션에 특성과 특성이 read
있습니다 write
.
예시
이 예제에서 첫 번째 섹션 pragma 은 섹션과 해당 특성을 식별합니다. 을 사용하여 __declspec(allocate)
선언되지 않았기 때문에 정수 j
는 입력 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(){}