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