Dopo un errore di battitura, la seguente espressione (semplificato) compilato ed eseguito:Cosa significa questa espressione e perché viene compilata?
if((1 == 2) || 0 (-4 > 2))
printf("Hello");
naturalmente, lo 0 non dovrebbe essere lì.
Perché compila e cosa significa l'espressione?
L'originale (semplificato) dovrebbe essere simile a questo:
if((1 == 2) || (-4 > 2))
printf("Hello");
niente di tutto questo si compila:
if((1 == 2) || true (-4 > 2))
printf("Hello");
if((1 == 2) || 1 (-4 > 2))
printf("Hello");
if((1 == 2) || null (-4 > 2))
printf("Hello");
Ho appena provato questo e ottenuto [avviso C4353] (http://msdn.microsoft.com/en-us/library/2a68558f.aspx): "estensione non standard utilizzata: costante 0 come espressione di funzione. '__noop' funzione intrinseca invece " – Rup
ho ottenuto l'errore: l'oggetto chiamato '0' non è una funzione ' –
Questo ha già avuto risposta a http://stackoverflow.com/questions/2198950/why-is-void-0-a-no-operation-in-c-and-c –