Partilhar via


section pragma

Cria uma seção em um arquivo OBJ.

Sintaxe

#pragma section( " nome da seção" [ ,atributos ] )

Comentários

Os termos segmento e seção têm o mesmo significado neste artigo.

Uma vez que uma seção é definida, ela permanece válida para o resto da compilação. No entanto, você deve usar __declspec(allocate), ou nada é colocado na seção.

de nome de seção é um parâmetro obrigatório que se torna o nome da seção. O nome não deve entrar em conflito com nenhum nome de seção padrão. Consulte /SECTION para obter uma lista de nomes que você não deve usar ao criar uma seção.

atributos é um parâmetro opcional que consiste em um ou mais atributos separados por vírgulas para atribuir à seção. Possíveis atributos são:

Atributo Descrição
read Permite operações de leitura em dados.
write Permite operações de gravação em dados.
execute Permite que o código seja executado.
shared Compartilha a seção entre todos os processos que carregam a imagem.
nopage Marca a seção como não paginável. Útil para drivers de dispositivo Win32.
nocache Marca a seção como não armazenável em cache. Útil para drivers de dispositivo Win32.
discard Marca a seção como descartável. Útil para drivers de dispositivo Win32.
remove Marca a seção como não residente na memória. Apenas para controladores de dispositivos virtuais (VxD).

Se você não especificar nenhum atributo, a seção terá read e write atributos.

Exemplo

Neste exemplo, a primeira seção pragma identifica a seção e seus atributos. O j inteiro não é colocado em mysec porque não foi declarado usando __declspec(allocate). Em vez disso, j vai para a seção de dados. O i inteiro entra em mysec devido ao seu atributo de classe de armazenamento __declspec(allocate).

// pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;

__declspec(allocate("mysec"))
int i = 0;

int main(){}

Ver também

diretivas Pragma e as palavras-chave __pragma e _Pragma