Расширенные атрибуты классов хранения в C

Блок, относящийся только к системам Microsoft

Более актуальные сведения об атрибутах класса хранения см. в справочнике по __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 влияют только на функции и данные.

Завершение блока, относящегося только к системам Майкрософт

См. также

Объявления и типы