2011-01-16 12 views
6

Eventuali duplicati:
Are nested functions a bad thing in gcc ?funzione che definisce all'interno di una funzione in C

Per quanto ne so, C non consente una funzione da definire all'interno di altre funzioni. Ma il codice seguente viene compilato ed eseguito senza errori in gcc. Qualcuno può spiegare il motivo per cui? Vedi anche questo: http://ideone.com/AazVK

#include <stdio.h> 

void val1(int x) 
{ 
     void sig(int x) { 
       printf("%d\n",x*10); 
     } 
     sig(x); 
} 

int main() 
{  
     void val2(int x) { 
       x = x*10; 
       val1(x); 

       printf("%d\n", x); 
       if (x < 10000) { 
         val2(x);     
       } 
     } 

     val2(20); 

     return 0; 
} 
+1

Numerosi duplicati, ad es. http://stackoverflow.com/questions/2929281/are-nested-functions-a-bad-thing-in-gcc –

+2

aggiungi il flag '-pedantic' per abilitare la modalità standard, e riceverai avvertimenti quando usi le estensioni di gnu – Christoph

risposta

Problemi correlati