W końcu wyśledziłem błąd literówki, który jest podobny do następującego kodu. Ale czy kompilator nie powinien tego wykryć (domyślnie opcje)?Dlaczego kompilator pozwala inicjować zmienną samą w sobie?
#include <stdio.h>
int main()
{
int c = c;
return printf("%d\n", c);
}
$ gcc --version
gcc (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3
Przywołujesz niezdefiniowane zachowanie przy inicjalizacji; kompilator nie musi diagnozować problemu ani definiować, co robi, gdy go napotka. –
Założę się, że mój lewy but, kiedy włączasz ostrzeżenia (-Wall w GCC), ostrzega cię, kiedy to robisz. Staraj się nie ignorować ostrzeżeń ;-) – nothrow
vc został wykryty. – BLUEPIXY