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

Quando uma seção é definida, ela permanece válida pelo restante da compilação. Porém, você deve usar __declspec(allocate), ou não será colocado nada na seção.

O nome da seção é um parâmetro obrigatório que será o nome da seção. O nome não deve estar em conflito com os nomes de seção padrão. Consulte /SECTION para obter uma lista de nomes que não devem ser usados ao criar uma seção.

atributos é um parâmetro opcional que consiste em um ou mais atributos separados por vírgulas que você deseja atribuir à seção. Os atributos possíveis 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 pode ser armazenada em cache. Útil para drivers de dispositivo Win32.
discard Marca a seção como não descartável. Útil para drivers de dispositivo Win32.
remove Marca a seção como não residente na memória. Somente para drivers de dispositivo virtual (VxD).

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

Exemplo

Nesse exemplo, a primeira seção pragma identifica a seção e seus atributos. O inteiro j não é colocado em mysec porque não foi declarado usando __declspec(allocate). Em vez disso, j entra na seção de dados. O inteiro i entra em mysec por causa do 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(){}

Confira também

Pragmadiretivas e as __pragma palavras-chave e _Pragma