Ho finalmente rintracciato un errore di battitura, che è qualcosa di simile al seguente codice. Ma il compilatore non dovrebbe rilevarlo (per impostazione predefinita)?Perché il compilatore consente di inizializzare una variabile con se stessa?
#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
Si invoca un comportamento non definito con l'inizializzazione; il compilatore non ha bisogno di diagnosticare il problema o di definire cosa fa quando lo incontra. –
Scommetto la mia scarpa sinistra che quando attivi gli avvisi (-Wall in GCC), ti avviserà quando lo farai. Cerca di non ignorare gli avvisi ;-) Viene rilevato – nothrow
vc. – BLUEPIXY