6.20 Standard Libraries
Moderators: misra-c, david ward
- Posts: 14
- Joined: Wed Feb 14, 2018 10:02 am
- Company: Inform GmbH
Why the following code is the violation of MISRA 20.2 ?
Code: Select all
#define abs(a) (((a) < (0)) ? -(a) : (a))
As far as I understand from the topics , 20.2 does not concern with preprocessor identifier then why I get an violation for the same.
- Posts: 548
- Joined: Thu Jan 05, 2006 1:11 pm
Rule 20.2 refers to the declaration of non-preprocessor names. i.e. objects, function names, typedefs. This code is not a violation of rule 20.2, but does violate rule 20.1 which does not permit standard library functions to be used in a #define.
Posted by and on behalf of
the MISRA C Working Group