Blog
Las funciones en lenguaje C son simples. Pero debido a la forma en la cual funciona el lenguaje de programación C; el poder de las mismas se ve un poco afectado. Con esto quiero decir que el mencionado “poder” de una función puede verse un poco limitado.
- Las funciones son capaces de recibir una cantidad fija o una cantidad variable de argumentos.
- Las funciones solo pueden devolver un valor; o simplemente, no devuelven ningún valor.
En el lenguaje C, los argumentos se copian por valor a las funciones, lo que significa que no podemos cambiar los argumentos para afectar su valor fuera de la función. Para hacer eso, debemos usar punteros, los cuales se verán más adelante en otra lección.
Las funciones son definidas por la siguiente sintaxis:
int foo(int bar) { /* acción a ejecutar */ return bar * 2; } int main() { foo(1); }
La función foo, que definimos previamente; recibe un argumento, que es llamado: bar. La función recibe un número entero, lo multiplica por dos y devuelve el resultado obtenido.
Para ejecutar la función foo con 1 (uno), como argumento bar, usamos la siguiente sintaxis:
foo(1);
En C, las funciones se deben definir primero, antes de que estas sean utilizadas en el código. Pueden declararse primero y luego implementarse usando un archivo de encabezado o al principio del archivo que estemos desarrollando en C; o pueden implementarse en el orden en que se usan (ésta última opción es la menos utilizada, y la menos recomendada).
La forma correcta de usar funciones es la siguiente:
/* aquí se declara la función */ int foo(int bar); int main() { /* llamado de la función */ printf(" El valor de foo es %d ", foo(1)); } int foo(int bar) { return bar + 1; }
También podemos crear funciones que no devuelven un valor usando la palabra clave void:
void moo() { /* se ejecuta una acción, pero no se devuelve ningún valor */ } int main() { moo(); }
Ejercicio
Escribe una función llamada print_big que reciba un argumento (un número entero) e imprima la línea x es un número grande si el argumento dado a la función es un número entero mayor que 10.
#include <stdio.h>; /* la función es declarada */ void print_big(int number); int main() { int array[] = { 1, 11, 2, 22, 3, 33 }; int i; for (i = 0; i < 6; i++) { print_big(array[i]); } return 0; } /* escribe tu función aquí */
Solución al ejercicio propuesto:
#include <stdio.h>; /* la función es declarada */ void print_big(int number); int main() { int array[] = { 1, 11, 2, 22, 3, 33 }; int i; for (i = 0; i < 6; i++) { print_big(array[i]); } return 0; } void print_big(int number){ if( number > 10 ){ printf( " %d es un número grande \n " ,number); } }
Salida en pantalla:
11 es un número grande 22 es un número grande 33 es un número grande
- Que no se te olvide agregar un carácter de nueva línea \n al final de la cadena printf.
Si has llegado hasta aquí enhorabuena ? pasa a la siguiente lección:
➡Variables estáticas (AprenderC curso principiante)