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).