, Вы должны использовать это:
рал следующую программу:
#include <stdio.h>
int main(void) {
int a = 3;
int b = 42;
printf("a = %d\nb = %d\n", a, b);
printf("Exchanging values.\n");
a ^= b ^= a ^= b;
printf("a = %d\nb = %d\n", a, b);
return 0;
}
и это нормально. Когда я пытаюсь скомпилировать это, я получаю это:
$ gcc test.c -o test -Wall -Wextra -ansi -pedantic-errors
test.c: In function ‘main’:
test.c:11: warning: operation on ‘a’ may be undefined
Это в значительной степени стандартный код, не так ли?
Почему это вызывает предупреждение? Насколько я знаю, поразрядный XOR реализован по умолчанию дляint
до тех пор, пока вы используете стандартную реализацию C.
Большое спасибо.