Определение функции внутри определения другой функции: допустимо ли оно?

см. Этот код

#include<stdio.h>

int main()
{
    void test(void)
    {
        printf("test");
        return;
    }
printf("main");
return 0;
}

эта студентка работает нормально и не дает никаких предупреждений и ошибок. Я не понимаю, почему это происходит? здесь я написал одно определение функции внутри определения другой функции, так что оно действительно?

РЕДАКТИРОВАТЬ: если да, то можно ли это использовать?

Зачем gcc нужно добавить эту функцию в качестве расширения .. здесь должно быть какое-то использование этого, не так ли ?!

6
задан Jeegar Patel 11 November 2011 в 07:56
поделиться