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).

참고 항목

참조

Pragma 지시문과 __Pragma 키워드