...
Note the comment declaring the macro unsafe as a warning for programmers. Alternatively, the macro can be renamed ABS_UNSAFE()
to make it painfully apparent that the macro is unsafe. However, a preferable, compliant solution is to declare ABS()
as an inline function (see PRE00-C. Prefer inline or static functions to function-like macros - CERT Secure Coding Standards).
Code Block | ||
---|---|---|
| ||
inline int abs(int x) { return (((x) < 0) ? -(x) : (x)); } /* ... */ m = abs(++n); |
...