If you believe you have found a better solution to this
problem, ask yourself:
- Will it work on operands which are variables stored in registers?
(That is, does it attempt to take the address of either of its operands?)
- If it uses a temporary variable, what if the name
of the temporary variable matches the name of one
of the operands (or matches in the first 32
- Will it work if the operands are lvalue
expressions (e.g. a[i])?
- If it works on operands of only one type (or if
it requires the caller to specify the type) is it
- Will it work in the limiting case of trying to
swap something with itself?
about this FAQ list