vedere il codice qui di seguito, definire una funzione in un'altra funzione,Perché è possibile definire una funzione in un'altra funzione?
void test1(void)
{
void test2(void)
{
printf("test2\n");
}
printf("test1\n");
}
int main(void)
{
test1();
return 0;
}
questo uso è dispari, è un uso di C89/C99 oppure solo un'estensione di gcc (ho usato gcc 4.6.3 in ubuntu 12 compilato). Eseguo questo codice e restituisce "test2" e "test1" .test2 può essere chiamato solo in test1.
Inoltre, qual è la scena comune di questo utilizzo o per cosa viene utilizzato questo utilizzo?
sua limitando la portata del 'test2()' non si può chiamare fuori 'test1()'. – bikram990