Spec-Zone.ru › GCC 15

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API