section
Crea una sezione in un file obj.
#pragma section( "section-name" [, attributes] )
Note
In questo argomento il significato dei termini segmento e sezione sono intercambiabili.
Una sezione, una volta definita, rimarrà valida per il resto della compilazione. Tuttavia, è necessario utilizzare __declspec(allocate) o non verrà inserito alcun dato nella sezione.
section-name è un parametro obbligatorio che sarà il nome della sezione. Il nome non deve essere in conflitto con alcun nome di sezione standard. Per un elenco di nomi che non è necessario utilizzare quando si crea una sezione, vedere /SECTION.
attributes è un parametro facoltativo che è costituito da uno o più attributi delimitati da virgole che si desidera assegnare alla sezione. attributes possibili sono:
read
Consente operazioni di lettura sui dati.write
Consente operazioni di scrittura sui dati.execute
Consente l'esecuzione di codice.condiviso
Condivide la sezione tra tutti i processi che caricano l'immagine.nopage
Contrassegna la sezione come non paginabile; utile per i driver di dispositivo Win32.nocache
Contrassegna la sezione come non memorizzabile nella cache; utile per i driver di dispositivo Win32.discard
Contrassegna la sezione come annullabile; utile per i driver di dispositivo Win32.remove
Contrassegna la sezione come non residente in memoria; solo per driver di dispositivo virtuali (VxD).
Se non si specificano attributi, la sezione avrà attributi di lettura e scrittura.
Esempio
Nell'esempio seguente, la prima istruzione identifica la sezione e i relativi attributi. L'Integer j non viene inserito in mysec poiché non è stato dichiarato con __declspec(allocate); j viene immesso nella sezione di dati. L'Integer i viene immesso in mysec come risultato del relativo attributo della classe di archiviazione __declspec(allocate).
// pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;
__declspec(allocate("mysec"))
int i = 0;
int main(){}