MISRA Discussion Forums

Full Version: Rule 20.2
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Why is
#include "c:\headers\measurement_regs.h "
non compliant to rule 20.2 due to \ in the path?
It is undefined in the C Standard (Annex J.2) hence the MISRA rule:

Quote:The behavior is undefined in the following circumstances:
...
The characters ', \, ", //, or /* occur in the sequence between the < and >
delimiters, or the characters ', \, //, or /* occur in the sequence between the "
delimiters, in a header name preprocessing token (6.4.7).

Your example is even worse because you use a hard-coded drive letter.
Either use your compiler´s include path and change to or at least use relative paths with '/', e.g.
The "\" is not permitted for the reasons mentioned by dg1980. A deviation is necessary, which will require you to confirm that "\" behaves as required on your system. Some implementations will accept the use of "/" instead of "\".