An object with static storage duration exists for the entire program execution. It can be defined at file scope or declared inside a function block with the static storage-class specifier. Static duration does not make an identifier visible everywhere: scope still controls visibility. section 13.2.1 section 13.2
Static-duration objects are always initialized. Their initialization must be possible at compile time or through the system’s startup procedure; when no initializer is provided, the object is initialized to zero. section 13.2.1 section 13.4
Table 13.1. Storage classes, scope, linkage of identifiers, and storage duration of the associated objects Tentative indicates that a definition is implied only if there is no other definition with an initializer. Induced indicates that the linkage is internal if another declaration with internal linkage has been met prior to that declaration; otherwise, it is external. (view table figure)
Compare storage classes by scope, linkage, storage duration, and initialization. section 13.2

