Определение функции в функции допустимо? - C (СИ)

Формулировка задачи:

из документации gcc
foo (double a, double b)
{
double square (double z) { return z * z; }
 
return square (a) + square (b);
}
Но работаю я в MSVS 2012. И там такое не прокатывает... такие приколы могу быть только в GNU С или как-то надо VS2012 настраивать для этого???

Код к задаче: «Определение функции в функции допустимо? - C (СИ)»

textual
void swap(int *element1p, int *element2p);
 
void bubble(int work[], const int size, int (*pFunction)(int a, int b))
{   int pass, count;
 
    for (pass = 1; pass < size; pass++)
        for (count = 0; count < size - 1; count++)
            if ((*pFunction)(work[count], work[count + 1])) swap(&work[count], &work[count + 1]);
}

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

9   голосов, оценка 3.667 из 5


СОХРАНИТЬ ССЫЛКУ