Machine-translated by Google. Questions are authored in English.
Top

Discussion

A macro that uses its argument twice is hazardous when the argument

  • A.is enclosed in parentheses by the caller
  • B.has a side effect, such as an increment
  • C.is a constant expression rather than a variable
  • D.is of a wider type than the macro expects

Answer: B

Correct answer: has a side effect, such as an increment

A macro using its argument twice evaluates whatever was passed twice, so SQ(i++) increments i twice and computes something other than a square. A function evaluates its arguments once before the call, which is one of the two reasons an inline function is preferred.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.