Я пытаюсь понять 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 ()?