The static storage class specifier shall be used in all declarations of objects and functions that have internal linkage
The static storage class specifier shall be used in all declarations of objects and functions that have internal linkage.
If you do not use the static specifier consistently in all declarations of
objects with internal linkage, you might declare the same object with external and internal
linkage.
In this situation, the linkage follows the earlier specification that is visible (C99 Standard, Section 6.2.2). For instance, if the earlier specification indicates internal linkage, the object has internal linkage even though the latter specification indicates external linkage. If you notice the latter specification alone, you might expect otherwise.
The rule checker detects situations where:
The same object is declared multiple times with different storage specifiers.
The same function is declared and defined with different storage specifiers.
If you expect a rule violation but do not see it, refer to Coding Standard Violations Not Displayed.
| Group: Declarations and Definitions |
| Category: Required |
| AGC Category: Required |