Ich finde endlich einen Tippfehler, der dem folgenden Code ähnelt. Aber sollte der Compiler dies nicht erkennen (standardmäßig Optionen)?Warum erlaubt der Compiler das Initialisieren einer Variablen mit sich selbst?
#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
Sie rufen ein undefiniertes Verhalten bei der Initialisierung auf; Der Compiler ist nicht erforderlich, um das Problem zu diagnostizieren oder zu definieren, was es tut, wenn es darauf stößt. –
Ich würde meinen linken Schuh darauf wetten, dass wenn Sie Warnungen (-Wall in GCC) einschalten, wird es Sie warnen, wenn Sie dies tun. Versuche Warnungen nicht zu ignorieren ;-) – nothrow
VC wird erkannt. – BLUEPIXY