const_seg
지정 된 세그먼트 위치 const 변수를.obj 파일에 저장 됩니다.
#pragma const_seg( [ [ { push | pop}, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] )
설명
약관의 의미 세그먼트 및 섹션 이 항목의 상호 교환이 가능 합니다.
OBJ 파일을 볼 수 있습니다 해당 dumpbin 응용 프로그램입니다..Obj 파일에서 기본 세그먼트 const 변수.rdata입니다.일부 const 스칼라, 같은 변수를 코드 스트림으로 인라인 자동으로 되지 않습니다.인라인된 코드에서는.rdata 표시 되지 않습니다.
const_seg 매개 변수 없이 하.rdata 세그먼트를 다시 설정 합니다.
밀어넣기(옵션)
레코드를 내부 컴파일러 스택에 배치 됩니다.A 밀어넣기 가질 수 있는 식별자 및 세그먼트 이름을.pop (옵션)
내부 컴파일러 스택 위쪽에서 레코드를 제거합니다.식별자 (옵션)
함께 사용 하는 경우 밀어넣기, 내부 컴파일러 스택 레코드에 이름을 할당 합니다.사용 하는 경우 pop, 레코드까지 내부 스택에서 팝 식별자 제거 됩니다. 경우 식별자 찾을 수 없는 내부 스택에 아무것도 팝입니다.사용 하 여 식별자 은 팝에 레코드가 여러 개 있습니다 pop 명령입니다.
"세그먼트 이름"(옵션)
세그먼트 이름을*.* 함께 사용 하면 pop, 스택에서 팝 되 고 세그먼트 이름 을 현재 세그먼트 이름이 됩니다."세그먼트 클래스" (옵션)
버전 2.0 이전에 C++와의 호환성을 위해 포함 됩니다.이 무시 됩니다.
예제
// pragma_directive_const_seg.cpp
// compile with: /EHsc
#include <iostream>
const int i = 7; // inlined, not stored in .rdata
const char sz1[]= "test1"; // stored in .rdata
#pragma const_seg(".my_data1")
const char sz2[]= "test2"; // stored in .my_data1
#pragma const_seg(push, stack1, ".my_data2")
const char sz3[]= "test3"; // stored in .my_data2
#pragma const_seg(pop, stack1) // pop stack1 from stack
const char sz4[]= "test4"; // stored in .my_data1
int main() {
using namespace std;
// const data must be referenced to be put in .obj
cout << sz1 << endl;
cout << sz2 << endl;
cout << sz3 << endl;
cout << sz4 << endl;
}
설명
참조 하십시오 /SECTION 없습니다 사용 해야 섹션을 만들 때 이름 목록을 합니다.
초기화 된 데이터에 대 한 섹션을 지정할 수도 있습니다 (data_seg), 초기화 되지 않은 데이터 (bss_seg), 고 기능 (code_seg).