Compartilhar via


data_seg

Especifica o segmento de dados em que as variáveis inicializadas são armazenadas no arquivo .obj.

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

Comentários

O significado dos termos segmento e seção são usados alternadamente neste tópico.

Os arquivos OBJ podem ser exibidos com o aplicativo dumpbin. O segmento padrão no arquivo .obj para as variáveis inicializadas é .data. As variáveis que são não inicializadas são consideradas inicializadas em zero e são armazenadas em .bss.

data_seg sem parâmetros redefine o segmento como .data.

  • push (opcional)
    Coloca um registro na pilha interna do compilador. push pode ter um elemento identifier e segment-name.

  • pop (opcional)
    Remove um registro do topo da pilha interna do compilador.

  • identifier (opcional)
    Quando usado com push, atribui um nome ao registro na pilha interna do compilador. Quando usado com pop, elimina registros da pilha interna até que identifier seja removido; se identifier não for localizado na pilha interna, nada será exibido.

    identifier habilita vários registros a serem removidos com um único comando pop .

  • "segment-name"(opcional)
    O nome de um segmento*.* Quando usado com pop, a pilha é exibida e segment-name torna-se o nome do segmento ativo.

  • "segment-class" (opcional)
    Incluído para compatibilidade com o C++ antes da versão 2.0. É ignorado.

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 "stack_data1"

int main() {
}

Os dados alocados com data_seg não retêm nenhuma informação sobre o respectivo local.

Consulte /SECTION para obter uma lista de nomes que você não deve usar ou criar uma seção.

Você também pode especificar seções para variáveis const (const_seg), dados não inicializados (bss_seg) e funções (code_seg).

Consulte também

Referência

Diretivas Pragma e a palavra-chave __Pragma