Partilhar via


section

Cria uma seção em um arquivo .obj.

#pragma section( "section-name" [, attributes] )

Comentários

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

Quando uma seção é definida, ela permanece válida pelo restante da compilação. No entanto, você deve usar __declspec(allocate) ou nada será colocado 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 você não deve usar ou criar uma seção.

attributes é um parâmetro opcional que consiste em um ou mais atributos separados por vírgulas que você deseja atribuir à seção. Os attributes possíveis sã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 do Win32.

  • nocache
    Marca a seção como não colocável em cache; útil para drivers de dispositivo do Win32.

  • discard
    Marca a seção como descartável; útil para drivers de dispositivo do Win32.

  • remove
    Marca a seção como memória não residente; apenas drivers de dispositivo virtual (VxD).

Se você não especificar atributos, a seção terá os atributos de leitura e gravação.

Exemplo

No exemplo a seguir, a primeira instrução identifica a seção e os seus atributos. O inteiro j não é colocado em mysec porque não foi declarado com __declspec(allocate); j entra na seção de dados. O inteiro i entra em mysec como resultado 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(){}

Consulte também

Referência

Diretivas Pragma e a palavra-chave __Pragma