MISRA Discussion Forums

Full Version: 20.1, 20.2 scopes
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Is rule 20.1 limited to #define and #undef directives?
Is rule 20.2 limited only to identifiers already defined in standard library?

If this is true:
Code:
void errno();
/* errono is a reserved keyword and is already defined in standard library */
/* This code is a violation of rule 20.2 only  */

int __MyVariable();
/* __MyVariable is also a reserved keyword but is not defined in standard library */
/* This code is not a violation of 20.1 nor 20.2 */
Quote:Is rule 20.1 limited to #define and #undef directives?

This is limited to #define and #undef.

Quote:Is rule 20.2 limited only to identifiers already defined in standard library?

The intent is that Rule 20.2 applies to both current library identifiers and all reserved identifiers. This includes all identifiers which begin with the underscore character. This will be clarified in the next version of MISRA-C.