const_seg

指定 const 变量在 .obj 文件中存储的段。

#pragma const_seg( [ [ { push | pop}, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] )

备注

术语 段 和 部分的 含义可互换本主题。

OBJ 文件可以使用 DUMPBIN 应用程序视图。 在 .obj 文件的默认段 const 变量的是 .rdata。 某些 const 变量,如标量,自动内联到代码流。 内联代码不会显示在 .rdata。

没有参数的const_seg 重置段到 .rdata。

  • 驱动器(可选)
    在内部编译器堆栈上将记录置于。 驱动器 可以具有 标识符段落名称

  • 方式安排 (可选)
    从内部编译器堆栈的顶部移除记录。

  • 标识符 (可选)
    当使用 驱动器,分配名称在内部编译器堆栈的记录。 当使用 方式安排,普遍音乐记录内部堆栈,直到移除 标识符 ;如果 标识符 在内部堆栈中未找到,没有弹出。

    使用 标识符 使多个记录弹出与单个 方式安排 命令。

  • “段名称”(可选)
    段的名称*。*当使用 方式安排,堆栈弹出,并且 段名称 是事件段名称。

  • “段类” (可选)
    包括用于 C++ 的兼容性在 2.0 版之前。 将忽略此参数。

示例

// 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关键字