Рассмотрим эту программу:
#include <stdio.h>
int main(void)
{
unsigned int a;
printf("%u %u\n", a^a, a-a);
return 0;
}
Это поведение undefined?
На первый взгляд, a
- неинициализированная переменная. Таким образом, это указывает на поведение undefined. Но a^a
и a-a
равны 0
для всех значений a
, по крайней мере, я думаю, это так. Возможно ли, что есть какой-то способ утверждать, что поведение хорошо определено?