6.34.9 Атрибуты переменных Microsoft Windows ¶
Эти атрибуты можно использовать для целей Microsoft Windows. Атрибуты переменных x86 для дополнительных атрибутов совместимости с Windows, доступных на всех целевых x86 платформах.
dllimportdllexport-
Атрибуты
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-10.5.0/gcc/Microsoft-Windows-Variable-Attributes.html