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 texto (segmento) onde as funções são armazenadas no arquivo de objeto (.obj).
Sintaxe
#pragma code_seg([ "section-name" [,"section-class" ] ])
#pragma code_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 nome da seção torna-se o nome da seção de texto ativo após o pop.
identificador
(Opcional) Quando usado com push, atribui um nome ao registro na pilha interna do compilador. Quando usada com pop, a diretiva retira registros da pilha interna até que identificador seja removido. Se identificador não for encontrado na pilha interna, nada será exibido.
"nome da seçã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 texto ativo.
"de 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 texto é uma seção que contém código executável. Neste artigo, os termos segmento e seção têm o mesmo significado.
A diretiva code_segpragma diz ao compilador para colocar todo o código objeto subsequente da unidade de tradução em uma seção de texto chamada nome da seção. Por padrão, a seção de texto usada para funções em um arquivo de objeto é chamada .text. Uma diretiva code_segpragma sem um parâmetro section-name redefine o nome da seção de texto para o código objeto subsequente como .text.
A diretiva code_segpragma não controla o posicionamento do código objeto gerado para modelos instanciados. Também não controla o código gerado implicitamente pelo compilador, como funções especiais de membro. Para controlar esse código, recomendamos que você use o atributo __declspec(code_seg(...)) em vez disso. Ele lhe dá controle sobre o posicionamento de todo o código objeto, incluindo o código gerado pelo compilador.
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 dados inicializados (data_seg), dados não inicializados (bss_seg) e variáveis const (const_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
Este exemplo mostra como usar a diretiva code_segpragma para controlar onde o código objeto é colocado:
// pragma_directive_code_seg.cpp
void func1() { // stored in .text
}
#pragma code_seg(".my_data1")
void func2() { // stored in my_data1
}
#pragma code_seg(push, r1, ".my_data2")
void func3() { // stored in my_data2
}
#pragma code_seg(pop, r1) // stored in my_data1
void func4() {
}
int main() {
}
Ver também
code_seg (__declspec)
diretivas Pragma e as palavras-chave __pragma e _Pragma