|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer|
#pragma section( "section-name" [, attributes] )
Creates a section in an .obj file. Once a section is defined, it remains valid for the remainder of the compilation. However, you must use __declspec(allocate) or nothing will be placed in the section.
section-name is a required parameter that will be the name of the section. The name must not conflict with any standard section names. See /SECTION for a list of names you should not use when creating a section.
attributes is an optional parameter consisting of one or more comma-separated attributes that you want to assign to the section. Possible attributes are:
- Allows read operations on data.
- Allows write operations on data.
- Allows code to be executed.
- Shares the section among all processes that load the image.
- Marks the section as not pageable; useful for Win32 device drivers.
- Marks the section as not cacheable; useful for Win32 device drivers.
- Marks the section as discardable; useful for Win32 device drivers.
- Marks the section as not memory-resident; virtual device drivers (VxD) only.
If you do not specify attributes, the section will have read and write attributes.
In the following example, the first instruction identifies the section and its attributes. The integer
j is not put into
mysec because it was not declared with
j goes into the data section. The integer
i does go into
mysec as a result of its
__declspec(allocate) storage-class attribute.
#pragma section("mysec",read,write) int j = 0; __declspec(allocate("mysec")) int i; int i = 1;