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) 还指定部分。