PDA

View Full Version : [C] Funzioni


Ir0nM4id3n84
27-11-2004, 20:07
Ciao, volevo chiedere una cosa....

Ho un programma fatto così:

Il programma deve ordinare un vettore mediante l'algoritmo BubbleSort. C'è una funzione chiamata appunto Bubblesort che ordina il vettore e questa funzione fà ricorso ad un'altra funzione chiamata swap per scambiare due locazioni del vettore.

Ora ho il prototipo della funzione bubblesort prima del main, poi la chiamata alla funzione bubblesort nel main.
Se dichiaro il prototipo della funzione swap all'interno del corpo della funzione bubblesort(all'inizio) vuol dire che la funzione swap avrà visibilità solamente all'interno di bublesort?

Grazie

Ziosilvio
27-11-2004, 21:53
Originariamente inviato da Ir0nM4id3n84
Se dichiaro il prototipo della funzione swap all'interno del corpo della funzione bubblesort(all'inizio) vuol dire che la funzione swap avrà visibilità solamente all'interno di bublesort?
In C (a differenza, ad esempio, del Pascal) le funzioni hanno tutte lo stesso livello di visibilità.
Puoi dichiarare una funzione tutte le volte che vuoi, purché le varie istanze siano non contraddittorie; ma puoi definirla una volta sola, e non puoi definire una funzione all'interno di un'altra funzione.
Puoi, comunque, dichiarare una funzione all'interno della definizione di un'altra funzione.

Ir0nM4id3n84
27-11-2004, 22:12
no, aspetta forse non mi sono spiegato bene, io non dichiaro una funzione all'interno di un'altra funzione (lo so che in C è vietato), la mia funzione swap stà fuori da qualsiasi altra. E' il prototipo di swap che è stato scritto all'interno della funzione bubblesort...

Come mai?

Kintaro10
28-11-2004, 14:33
Se nn erro, nel tuo caso, la funzione swap (così come hai detto che è dichiarata) è utilizzabile solo dal bubble.

bye :)