2011-01-16 13 views
6

Duplicar posible:
Are nested functions a bad thing in gcc ?función que define dentro de una función en C

Por lo que yo sé, C no permite una función que se define dentro de otra función. Pero el siguiente código se compila y se ejecuta sin ningún error en gcc. ¿Alguien puede explicar la razón por qué? Ver esto también: 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

Numerosos duplicados, p. Ej. http://stackoverflow.com/questions/2929281/are-nested-functions-a-bad-thing-in-gcc –

+2

agrega el indicador '-pedantic' para habilitar el modo estándar, y recibirás advertencias cuando uses las extensiones gnu – Christoph

Respuesta

Cuestiones relacionadas