Pues en C, hay dos clases de funciones, tienen un nombre raro que por cierto nunca recuerdo jeje, pero basicamente esque algunas retornan un valor y otras no.
La del ejemplo anterios hace los pulsos pero no devuelve nada a la funcion principal. Ahora imaginate que una funcion acaba con la orden;
return x;
Que x puede ser un numero, una constante o mejor aun, una variable, entonces esa funcion se completara cuando devuelva ese valor a la funcion main. Y podremos hacer algo con el, por ejemplo imagina ke la funcion se llama prueba() y el valor retornado lo queremos guardar en valor_prueba:
valor_prueba = prueba();
Me intentado explicar lo mejor que podido, espero haberlo hecho medianamente bien y que te ayude.