Lección 12 · 12 de 20
Funciones · C
Agrupe código en funciones de C: funciones void sin valor de vuelta, funciones con un parámetro y funciones que devuelven un resultado con return.

Una función es un trozo de código con nombre que se puede usar tantas veces como quiera. print_line dibuja una raya; en main basta con escribir print_line(); para que se ejecute. Así la raya se dibuja tres veces sin repetir el código.
Delante del nombre va el tipo de lo que devuelve. `void` significa «nada»: print_line y print_stars solo escriben. print_line(void) no recibe nada; print_stars(int count) recibe un parámetro, el número de estrellas, y con él su for dibuja 5, 3 o 4.
celsius_to_fahrenheit devuelve un double: `return` termina la función y entrega el valor a quien la llamó. Ese valor se puede usar directamente dentro de printf o guardar en una variable, como cold.
Las funciones de este ejemplo se escriben antes de main para que el compilador ya las conozca cuando se usan. En la lección siguiente verá cómo ponerlas después.
Código · main.c
#include <stdio.h>// A function groups code under a name. void: it gives nothing back.void print_line(void) { printf("------------------------\n");}// This one receives a value: how many stars to draw.void print_stars(int count) { for (int i = 0; i < count; i++) printf("*"); printf("\n");}// This one gives a value back with return.double celsius_to_fahrenheit(double celsius) { return celsius * 9 / 5 + 32;}int main(void) { print_line(); printf("Hotel reviews\n"); print_line(); printf("Sea View "); print_stars(5); printf("City Inn "); print_stars(3); printf("Old Mill "); print_stars(4); print_line(); // The result can be used like any other value. printf("25 C is %.1f F\n", celsius_to_fahrenheit(25)); double cold = celsius_to_fahrenheit(-5); printf("-5 C is %.1f F\n", cold); return 0;}Salida · cc main.c -o main && ./main
------------------------ Hotel reviews ------------------------ Sea View ***** City Inn *** Old Mill **** ------------------------ 25 C is 77.0 F -5 C is 23.0 F
Para recordar
- Una función agrupa código bajo un nombre.
voidcomo tipo: no devuelve nada.- Los parámetros van entre paréntesis con su tipo.
return valor;termina la función y entrega el resultado.- Defina la función antes de usarla (o use un prototipo).
Ejercicio
Escriba una función double kmh_to_ms(double kmh) que pase kilómetros por hora a metros por segundo (divida entre 3.6) y úsela con 50, 90 y 120.