La funzione main()
Come gia` precedentemente accennato, anche il corpo di un programma C/C++ e`
modellato come una funzione. Tale funzione ha un nome predefinito, main ,
e viene invocata automaticamente dal sistema quando il programma viene eseguito.
Per adesso possiamo dire che la struttura di un programma e` sostanzialmente
la seguente:
< Dichiarazioni globali e funzioni >
int main(int argc, char* argv[ ]) {
< Corpo della funzione >
}
Un programma e` dunque costituito da un insieme (eventualmente vuoto) di dichiarazioni
e di definizioni globali di costanti, variabili... ed un insieme di dichiarazioni
e definizioni di funzioni (che non possono essere dichiarate e/o definite localmente
ad altre funzioni); infine il corpo del programma e` costituito dalla funzione
main , il cui prototipo per esteso e` mostrato nello schema riportato
sopra.
Nello schema main ritorna un valore di tipo int (che
generalmente e` utilizzato per comunicare al sistema operativo la causa della
terminazione). I vecchi compilatori non standard spesso lasciavano ampia liberta`
circa il prototipo di main , alcuni consentivano di dichiararla
void , ora a norma di standard main deve avere tipo
int e se nel corpo della funzione non viene inserito esplicitamente
una istruzione return , il compilatore inserisce automaticamente
una return 0; .
Inoltre main puo` accettare opzionalmente due parametri: il primo
e` di tipo int e indica il numero di parametri presenti sulla riga
di comando attraverso cui e` stato eseguito il programma; il secondo parametro
(si comprendera` in seguito) e` un array di stringhe terminate da zero (puntatori
a caratteri) contenente i parametri, il primo dei quali (argv[0] )
e` il nome del programma come riportato sulla riga di comando.
#include < iostream >
using namespace std;
int main(int argc, char* argv[]) {
cout << "Riga di comando: " << endl;
cout << argv[0] << endl;
for(int i=1; i < argc; ++i)
cout << "Parametro " << i << "
= " << argv[i] << endl;
return 0;
}
Il precedente esempio mostra come accedere ai parametri passati sulla riga
di comando; si provi a compilare e ad eseguirlo specificando un numero qualsiasi
di parametri, l'output dovrebbe essere simile a:
> test a b c d // questa
e` la riga di comando
Riga di comando: TEST.EXE
Parametro 1 = a
Parametro 2 = b
Parametro 3 = c
Parametro 4 = d
|