Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

An unsafe function-like macro is one that, when expanded, evaluates its argument more than once or does not evaluate it at all. Contrasted with function calls, which always evaluate each of their arguments exactly once, unsafe function-like macros often have unexpected and surprising effects and lead to subtle, hard-to-find defects. (See PRE31-C. Avoid side - effects in arguments to unsafe macros.) Consequently, every function-like macro should evaluate each of its arguments exactly once. Alternatively and preferably, defining function-like macros should be avoided in favor of inline functions. (See PRE00-C. Prefer inline or static functions to function-like macros.)

...

 

...

Image Modified