No subject
Sat Dec 3 12:15:27 GMT 2022
# 3.3b: Here's a slick expression:
#
# a ^= b ^= a ^= b
#
# It swaps a and b without using a temporary.
#
# A: Not portably, it doesn't. It attempts to modify the variable a
# twice between sequence points, so its behavior is undefined.
#
# For example, it has been reported that when given the code
#
# int a = 123, b = 7654;
# a ^= b ^= a ^= b;
#
# the SCO Optimizing C compiler (icc) sets b to 123 and a to 0.
#
# See also questions 3.1, 3.8, 10.3, and 20.15c.
Regards,
Ingo
More information about the sane-devel
mailing list