const_seg
Especifica o segmento em que const variáveis são armazenadas no arquivo. obj.
#pragma const_seg( [ [ { push | pop}, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] )
Comentários
O significado dos termos segmento e seção são intercambiáveis neste tópico.
Arquivos OBJ podem ser exibidos com o dumpbin aplicativo.O segmento padrão no arquivo. obj para const variáveis é .rdata.Alguns const variáveis, como, por exemplo, escalares, são automaticamente embutidas no fluxo de código.Código embutido não aparecerá em .rdata.
const_seg sem parâmetros redefine o segmento para .rdata.
envio(opcional)
Coloca um registro na pilha interno do compilador.A push pode ter um identificador e nome do segmento.pop (opcional)
Remove um registro da parte superior da pilha do compilador interno.identificador (opcional)
Quando usado com push, atribui um nome para o registro na pilha interno do compilador.Quando usado com pop, pops registros na pilha interna até identificador foi removida; Se identificador não for encontrada na pilha interna, nada é exibido.Usando identificador permite que vários registros a ser exibido com um único pop comando.
"nome do segmento"(opcional)
O nome de um segmento*.* Quando usado com pop, a pilha é exibida e nome do segmento torna-se o nome do segmento ativo."classe segmento" (opcional)
Incluído para compatibilidade com o C++ anteriores à versão 2.0.Ele é ignorado.
Exemplo
// 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;
}
Comentários
Consulte /SECTION para obter uma lista de nomes que você não deve usar ao criar uma seção.
Você também pode especificar as seções para dados inicializados (data_seg), dados foi cancelada (bss_seg) e funções (code_seg).