void main()
, che è sempre la prima funzione ad essere eseguita nel programma.
Le funzioni hanno anche un'altra ragione di esistere; spesso abbiamo a che fare con delle operazioni che vengono ripetute numerose volte all'interno di un programma: ad esempio, potrebbe essere necessario riscrivere molte volte l'algoritmo per stabilire il maggiore tra due variabili intere. Si tratterebbe di una bella fatica sprecata, in quanto sarebbe molto più comodo scrivere tale algoritmo una volta per tutte e utilizzarlo allall'occorrenza; inoltre, si eviterebbero anche errori, perché dovremmo verificare il nostro algoritmo una ed una sola volta, piuttosto che decine o centinaia. Possiamo, in casi simili, scrivere il codice che effettua l'operazione necessaria all'interno di una funzione.
Vediamo allora di descrivere in astratto cosa è una funzione: si tratta di un programma, all'interno del quale valgono le stesse regole sintattiche e semantiche del corpo principale, che lavora su un certo insieme di dati, e torna un risultato appartenente ad un altro insieme di dati. Entrambi questi insiemi potrebbero anche essere vuoti, ossia esistono funzioni che non elaborano nessun dato in entrata e non ne ritornano alcuno in uscita. Con questo modello, è facile identificare le funzioni di un linguaggio di programmazione con quelle matematiche, aventi la medesima definizione formale. Altre analogie sono le seguenti: sia le funzioni matematiche che quelle di un linguaggio di programmazione tornano al più un risultato; entrambe sono deterministiche, ossia ripetendo un numero arbitrario di volte una funzione su un insieme di dati fisso, si ottiene sempre lo stesso risultato. Una differenza importante è per esempio che le funzioni matematiche possono lavorare su insiemi infiniti, mentre abbiamo già detto che in un calcolatore non c'è posto per insiemi infiniti di dati, essendo la memoria di esso finita.
Oltre alle funzioni che scriviamo nei nostri programmi, possiamo utilizzare all'interno di essi anche numerose altre funzioni già pronte per l'uso: le funzioni di libreria. Si tratta di un insieme cospicuo di funzioni (e molto altro in realtà ...ne parleremo in seguito) messe a disposizione del programmatore, appartenenti a qualunque implementazione standard del linguaggio C++. Abbiamo già incontrato alcuni rappresentanti di esse, come le funzioni per calcolare il seno, l'arcotangente o per produrre numeri pseudocasuali. A fine capitolo faremo una breve panoramica sulle funzioni matematiche di maggiore interesse per il nostro corso.