PDA

View Full Version : [C++]Funzioni[noob]


l33t_01
15-01-2008, 12:11
Salve!
Mi potreste spiegare(voi.. o tramite qualche link dal web)
1) Quando è perchè si usa il tipo void?(gli altri tipi, float, int, double mi sono chiari)
2)Come deve essere effettuata la chiamata delle varie funzioni nell' "int main()"?(Mi è chiaro che non bisogna scrivere i tipi nella chiamata di una funzione.. perchè i parametri sono già stati dichiarati...ma ad esempio.. perchè un vettore "float esempio[100]" nella chiamata di funzione viene dichiarato "nomefunzione(esempio)//chiamata di nomefunzione"..è solo una questione di standard o c'è qualche motivo di fondo?)
3)Il prototipo delle funzioni deve essere uguale alla dichiarazione d'intestazione del sottoprogramma(o funzione).. per quanto riguarda la chiamata della funzione contenuta nel programma vero e proprio(int main) c'è qualche "regola ricorrente" a cui attenersi?
P.S:= il corso non prevede la creazione di apposite librerie del tipo "nomelibreria.h"...ecco il motivo dell'utilizzo della chiamata di funzione!?!
Grazie in anticipo per eventuali risposte!

ndakota
15-01-2008, 12:23
1) per esempio per stampare qualcosa che magari passi alla funzione come parametro.. o ancora magari nel caso dell'inizializzazione di un vettore che passi a una funzione si può usare void..

vizzz
15-01-2008, 12:31
Salve!
Mi potreste spiegare(voi.. o tramite qualche link dal web)
1) Quando è perchè si usa il tipo void?(gli altri tipi, float, int, double mi sono chiari)
2)Come deve essere effettuata la chiamata delle varie funzioni nell' "int main()"?(Mi è chiaro che non bisogna scrivere i tipi nella chiamata di una funzione.. perchè i parametri sono già stati dichiarati...ma ad esempio.. perchè un vettore "float esempio[100]" nella chiamata di funzione viene dichiarato "nomefunzione(esempio)//chiamata di nomefunzione"..è solo una questione di standard o c'è qualche motivo di fondo?)
3)Il prototipo delle funzioni deve essere uguale alla dichiarazione d'intestazione del sottoprogramma(o funzione).. per quanto riguarda la chiamata della funzione contenuta nel programma vero e proprio(int main) c'è qualche "regola ricorrente" a cui attenersi?
P.S:= il corso non prevede la creazione di apposite librerie del tipo "nomelibreria.h"...ecco il motivo dell'utilizzo della chiamata di funzione!?!
Grazie in anticipo per eventuali risposte!

1) il tipo void si usa quando non intendi passare o ricevere alcun parametro ad/da una funzione.

per chiarirti le idee:


// prototipo
void funzione(int parametro);

// corpo della funzione
void funzione(int parametro)
{

}

//chiamata alla funzione
int parametro = 123;
funzione(parametro);

IceCoder
15-01-2008, 15:43
il tipo void (come indica anche la traduzione dall'inglese) vuol dire "nulla"

quando dichiari una funzione devi usare questa sintassi

TipoResituito [altreSpecifiche] NomeFunzione(argomenti...);

per esempio:

int NumeroCasuale(int max);

indica che la funzione resituirà un valore di tipo int

(Es.: numero = NumeroCasuale(9);)

quindi se TipoRestituito è void vuol dire che la funzione non restituirà nulla (di conseguenza si chiama procedura, non funzione).

la chiamata alle funzioni si effettua scrivendo il nome e tra parentesi gli argomenti come da esempio:


#include <stdio.h>

int Doppio(int n);
void ScriviLettera(char c);

int main()
{
int num;
num = Doppio(5);
printf("Il doppio del numero inserito è: %d!\n", num);
ScriviLettera('a');
return 0;
}

int Numero(int n)
{
return n * 2;
}

void ScriviLettera(char c)
{
puts(&c);
return;
}



chiaro?