Почему прототип функции находится внутри другого функционального блока?

Я пытаюсь понять C, просматривая K&R. У меня проблемы с пониманием этого кода для двух функций, найденных в книге:

void qsort(int v[], int left, int right){
int i, last;

void swap(int v[], int i, int j);

if (left >= right)
    return;

swap(v, left, (left+right)/2);

last = left;

for ( i = left+1; i<=right; i++)
    if (v[i]<v[left])
        swap(v,++last, i);

swap(v,left,last);
qsort(v,left,last-1);
qsort(v,last+1,right);
}


void swap(int v[], int i, int j){

    int temp;

    temp = v[i];
    v[i] = v[j];
    v[j] = temp;
}

Эти две функции выполняют быструю сортировку для данного массива. основная функция Я создал массив int и назвал qsort. Она отлично компилировалась и работала нормально. Мой вопрос: почему прототип для swap () вставлен в функцию qsort (), а не перед main () ?

10
задан Stephen 23 August 2011 в 16:06
поделиться