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(){}