...
While inline functions are, in general, more suitable for this task (see PRE00-C. Prefer inline or static functions to functionlike function-like macros), occasionally they are not feasible (when macros are expected to operate on variables of different types, for example).
...