6.4.2.9 Атрибуты переменных Microsoft Windows
Эти атрибуты можно использовать для целевых платформ Microsoft Windows. Дополнительные атрибуты совместимости с Windows, доступные на всех целевых платформах x86, описаны в разделе Атрибуты переменных x86.
-
dllimport dllexport-
Атрибуты
dllimportиdllexportописаны в разделе Атрибуты функций Microsoft Windows. -
selectany -
Атрибут
selectanyпридаёт инициализированной глобальной переменной семантику link-once. Если компоновщик обнаруживает несколько определений переменной, выбирается первое, а остальные отбрасываются. Как и в компиляторе Microsoft, компоновщику указывается не предупреждать о различиях в размере или содержимом нескольких определений.Хотя этот атрибут в первую очередь используется для типов POD, его также можно применять к глобальным объектам C++, инициализируемым конструктором. В этом случае код статической инициализации и уничтожения объекта генерируется при каждой трансляции, в которой определяется объект, но вызовы конструктора и деструктора защищены переменной-защитой link-once.
Атрибут
selectanyдоступен только для целевых платформ Microsoft Windows. Для совместимости с другими компиляторами вместо__attribute__ ((selectany))можно использовать синоним__declspec (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-15.3.0/gcc/Microsoft-Windows-Variable-Attributes.html