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:
Attribute | Description |
---|---|
read |
Allows read operations on data. |
write |
Allows write operations on data. |
execute |
Allows code to be executed. |
shared |
Shares the section among all processes that load the image. |
nopage |
Marks the section as not pageable. Useful for Win32 device drivers. |
nocache |
Marks the section as not cacheable. Useful for Win32 device drivers. |
discard |
Marks the section as discardable. Useful for Win32 device drivers. |
remove |
Marks 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;
int main(){}
See also
Phản hồi
https://aka.ms/ContentUserFeedback.
Sắp ra mắt: Trong năm 2024, chúng tôi sẽ dần gỡ bỏ Sự cố với GitHub dưới dạng cơ chế phản hồi cho nội dung và thay thế bằng hệ thống phản hồi mới. Để biết thêm thông tin, hãy xem:Gửi và xem ý kiến phản hồi dành cho