Skip to content

Latest commit

 

History

History
57 lines (40 loc) · 2.36 KB

section.md

File metadata and controls

57 lines (40 loc) · 2.36 KB
descriptiontitlems.datef1_keywordshelpviewer_keywordsno-loc
Learn more about the section pragma directive in Microsoft C/C++
section pragma
01/22/2021
section_CPP
vc-pragma.section
pragma, section
section pragma
pragma

section pragma

Creates a section in an OBJ file.

Syntax

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

Remarks

The terms segment and section have the same meaning in this article.

Once a section is defined, it remains valid for the rest of the compilation. However, you must use __declspec(allocate), or nothing is placed in the section.

section-name is a required parameter that becomes the name of the section. The name must not conflict with any standard section names. See /SECTION for a list of names you shouldn't use when creating a section.

attributes is an optional parameter consisting of one or more comma-separated attributes to assign to the section. Possible attributes are:

AttributeDescription
readAllows read operations on data.
writeAllows write operations on data.
executeAllows code to be executed.
sharedShares the section among all processes that load the image.
nopageMarks the section as not pageable. Useful for Win32 device drivers.
nocacheMarks the section as not cacheable. Useful for Win32 device drivers.
discardMarks the section as discardable. Useful for Win32 device drivers.
removeMarks the section as not memory-resident. For virtual device drivers (VxD) only.

If you don't specify any attributes, the section has read and write attributes.

Example

In this example, the first section pragma identifies the section and its attributes. The integer j isn't put into mysec because it wasn't declared using __declspec(allocate). Instead, j goes into the data section. The integer i does go into mysec because of its __declspec(allocate) storage-class attribute.

// pragma_section.cpp #pragma section("mysec",read,write) int j = 0; __declspec(allocate("mysec")) int i = 0; intmain(){}

See also

Pragma directives and the __pragma and _Pragma keywords

close