Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Especifica a seção de dados (segmento) onde as variáveis inicializadas são armazenadas no arquivo de objeto (.obj).
Sintaxe
#pragma data_seg([ "section-name" [,"section-class" ] ])
#pragma data_seg({push|pop} [,identificador ] [,"section-name" [,"section-class" ] ])
Parâmetros
push
(Opcional) Coloca um registro na pilha interna do compilador. Um push pode ter um identificador e nome da seção.
pop
(Opcional) Remove um registro da parte superior da pilha interna do compilador. Um pop pode ter um identificador e nome da seção. Você pode exibir vários registros usando apenas um comando pop usando o identificador . O de nome de seção
identificador
(Opcional) Quando usado com push, atribui um nome ao registro na pilha interna do compilador. Quando usado com pop, desbloqueia registros da pilha interna até que identificador seja removido. Se identificador não for encontrado na pilha interna, nada será exibido.
identificador permite que vários registros sejam exibidos com um único comando pop.
"nome da secção"
(Opcional) O nome de uma seção. Quando usado com pop, a pilha é exibida e nome da seção se torna o nome da seção de dados ativa.
"classe de secção"
(Opcional) Ignorado, mas incluído para compatibilidade com versões do Microsoft C++ anteriores à versão 2.0.
Comentários
Uma seção em um arquivo de objeto é um bloco nomeado de dados que é carregado na memória como uma unidade. Uma seção de dados é uma seção que contém dados inicializados. Neste artigo, os termos segmento e seção têm o mesmo significado.
A seção padrão no arquivo .obj para variáveis inicializadas é .data. As variáveis não inicializadas são consideradas inicializadas como sendo inicializadas a zero e são armazenadas em .bss.
A diretiva data_segpragma diz ao compilador para colocar todos os itens de dados inicializados da unidade de tradução em uma seção de dados chamada nome da seção. Por padrão, a seção de dados usada para dados inicializados em um arquivo de objeto é denominada .data. As variáveis não inicializadas são consideradas inicializadas como sendo inicializadas a zero e são armazenadas em .bss. Uma diretiva data_segpragma sem um parâmetro section-name redefine o nome da seção de dados para os itens de dados inicializados subsequentes para .data.
Os dados alocados usando o data_seg não retêm nenhuma informação sobre sua localização.
Para obter uma lista de nomes que não devem ser usados para criar uma seção, consulte /SECTION.
Você também pode especificar seções para variáveis const (const_seg), dados não inicializados (bss_seg) e funções (code_seg).
Você pode usar o aplicativo DUMPBIN.EXE para exibir arquivos de objeto. Versões de DUMPBIN para cada arquitetura de destino com suporte estão incluídas no Visual Studio.
Exemplo
// pragma_directive_data_seg.cpp
int h = 1; // stored in .data
int i = 0; // stored in .bss
#pragma data_seg(".my_data1")
int j = 1; // stored in .my_data1
#pragma data_seg(push, stack1, ".my_data2")
int l = 2; // stored in .my_data2
#pragma data_seg(pop, stack1) // pop stack1 off the stack
int m = 3; // stored in .my_data1
int main() {
}