estoy tratando de entender C, pasando a través de K & R. tengo problemas para entender este código para dos funciones que se encuentran en el libro:¿Por qué el prototipo de función está dentro de un bloque de función diferente?
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;
}
Estas dos funciones realizan una clasificación rápida en una matriz dada. En la función principal, creé una matriz int y llamé a qsort. Compiló bien y funcionó bien. Mi pregunta es, ¿por qué el prototipo para swap() pone en la función qsort() y no antes de main()?
Se puede hacer de ambas formas. Supongo que esto se hace para poner el prototipo en un ámbito, no es que importe. –