см. код ниже, я определяю функцию в другой функции,
void test1(void)
{
void test2(void)
{
printf("test2\n");
}
printf("test1\n");
}
int main(void)
{
test1();
return 0;
}
это использование нечетное, это использование c89/c99 или только расширение gcc (я использовал gcc 4.6.3 в компиляции ubuntu 12). Я запускаю этот код, и он выводит "test2" и "test1".test2 может быть вызван только в test1.
Что еще, какая общая сцена этого использования или для чего используется это использование?