6.34.9 Атрибуты переменных Microsoft Windows
Эти атрибуты можно использовать для целей Microsoft Windows. Атрибуты переменных x86 содержат дополнительные атрибуты совместимости Windows, доступные для всех целей x86.
-
dllimport dllexport-
Атрибуты
dllimportиdllexportописаны в Атрибутах функций Microsoft Windows. -
selectany -
Атрибут
selectanyобеспечивает семантику «link-once» для инициализированной глобальной переменной. Когда компоновщик сталкивается с несколькими определениями переменной, он выбирает первое и отбрасывает остальные. Следуя практике Microsoft компилятора, компоновщику сообщается не выдавать предупреждения о различиях в размере или содержимом между множественными определениями.Хотя основное применение этого атрибута относится к типам POD, его также можно применять к глобальным объектам C++, инициализируемым конструктором. В этом случае код статической инициализации и уничтожения объекта генерируется в каждом переводе, определяющем объект, но вызовы конструктора и деструктора защищены переменной-сторожем link-once.
Атрибут
selectanyдоступен только для целей Microsoft Windows. Можно использовать__declspec (selectany)в качестве синонима для__attribute__ ((selectany))для обеспечения совместимости с другими компиляторами. -
shared -
В Microsoft Windows, помимо размещения определений переменных в именованном сегменте, сегмент также может быть общим для всех запущенных копий исполняемого файла или DLL. Например, эта небольшая программа определяет общие данные, размещая их в именованном сегменте
sharedи отмечая сегмент как общий:int foo __attribute__((section ("shared"), shared)) = 0; int main() { /* Read and write foo. All running copies see the same value. */ return 0; }Атрибут
sharedможно использовать только вместе с атрибутомsectionс полностью инициализированным глобальным определением, из-за особенностей работы компоновщиков. Подробнее см. атрибутsection.Атрибут
sharedдоступен только для целей Microsoft Windows.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gcc/Microsoft-Windows-Variable-Attributes.html