Рассмотрим
void swap(int* a, int* b)
{
if (a != b){
*a = *a ^ *b;
*b = *a ^ *b;
*a = *a ^ *b;
}
}
int main()
{
int a = 0;
int b = 1;
swap(&a, &b); // after this b is 0 and a is 1
return a > b ? 0 : a / b;
}
swap
- попытка обмануть компилятор, чтобы не оптимизировать программу.
Определено ли поведение этой программы? a / b
никогда не достижим, но если бы это было тогда, вы получили бы деление на ноль.