6.33 Specifying Attributes of Types

The keyword __attribute__ allows you to specify special attributes of types. Some type attributes apply only to struct and union types, while others can apply to any type defined via a typedef declaration. Other attributes are defined for functions (see Declaring Attributes of Functions), labels (see Label Attributes), enumerators (see Enumerator Attributes), and for variables (see Specifying Attributes of Variables).

The __attribute__ keyword is followed by an attribute specification inside double parentheses.

You may specify type attributes in an enum, struct or union type declaration or definition by placing them immediately after the struct, union or enum keyword. A less preferred syntax is to place them just past the closing curly brace of the definition.

You can also include type attributes in a typedef declaration. See Attribute Syntax, for details of the exact syntax for using attributes.