Расширенные атрибуты классов хранения в C
Блок, относящийся только к системам Майкрософт
Более актуальные сведения об атрибутах класса хранения см. в справочнике по __declspec
на C++.
Расширенный синтаксис атрибутов упрощает и стандартизирует расширения для систем Microsoft в соответствии с правилами языка C. К атрибутам класса хранения, в которых используется расширенный синтаксис атрибутов, относятся: thread
, naked
, dllimport
и dllexport
.
Расширенный синтаксис атрибутов для указания данных класса хранения использует ключевое слово __declspec
, которое указывает, что экземпляр заданного типа должен храниться с атрибутом класса хранения для систем Майкрософт (thread
, naked
, dllimport
или dllexport
). Примеры других модификаторов класса хранения включают ключевые слова static
и extern
. Но эти ключевые слова входят в стандарт ISO C, и как таковые они не используются с расширенным синтаксисом атрибутов.
Синтаксис
storage-class-specifier
:
__declspec (
extended-decl-modifier-seq
)
/* Для конкретной корпорации Майкрософт */
extended-decl-modifier-seq
: /* Только для систем Майкрософт */
extended-decl-modifier
необ.
extended-decl-modifier-seq
extended-decl-modifier
extended-decl-modifier
: /* Только для систем Майкрософт */
thread
naked
dllimport
dllexport
Модификаторы объявления разделяются пробелами. Обратите внимание, что extended-decl-modifier-seq
может быть пустым, в этом случае ключевое слово __declspec
не оказывает влияния.
Атрибуты класса хранения thread
, naked
, dllimport
и dllexport
— это свойства исключительно объявления объекта или функции, к которым они применяются. Они не переопределяют атрибуты типа самой функции. Атрибут thread
влияет только на данные. Атрибут naked
влияет только на функции. Атрибуты dllimport
и dllexport
влияют только на функции и данные.
Завершение блока, относящегося только к системам Майкрософт