6.7.1 Storage-class specifiers

Syntax

1

storage-class-specifier:

typedef

extern

static

auto

register

Constraints

2

At most, one storage-class specifier may be given in the declaration specifiers in a declaration.[1]

Semantics

3

The typedef specifier is called a “storage-class specifier” for syntactic convenience only; it is discussed in 6.7.7. The meanings of the various linkages and storage durations were discussed in 6.2.2 and 6.2.4.

4

A declaration of an identifier for an object with storage-class specifier register suggests that access to the object be as fast as possible. The extent to which such suggestions are effective is implementation-defined.[2]

5

The declaration of an identifier for a function that has block scope shall have no explicit storage-class specifier other than extern.

6

If an aggregate or union object is declared with a storage-class specifier other than typedef, the properties resulting from the storage-class specifier, except with respect to linkage, also apply to the members of the object, and so on recursively for any aggregate or union member objects.

Forward References

Footnotes