Che tipo è una funzione che non restituisce alcun valore?
void

Ad esempio questo programma che vi posto in seguito non dovrebbe restituire due tipi "float" ovvero som e prod?
Allora perchè è consentito l'uso della procedura void...che non dovrebbe restituire alcun valore?
Perché i valori li restituisci mediante i parametri passati per indirizzo, per intenderci puoi scrivere la funzione somma in diversi modi:

float somma(float a, float b)

void somma(float a, float b, float &risultato)

Ovviamente vanno richiamati in modo diverso:

risultato = somma(10.4, 11.0);

e

somma(10.4, 11.0, risultato);