Curso de Programación en C/Prog3

De WikiCabal
< Curso de Programación en C
Revisión del 00:11 10 dic 2012 de Slygor (discusión | contribuciones) (Correcciones ortográficas y eliminación de palabra repetida. Gracias por el trabajo que hacen.)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Ir a la navegación Ir a la búsqueda

Prog3

 1 /* Prog3.c -- Crear una función propia */
 2 
 3 #include <stdio.h>
 4 
 5 void mesero( void );  /* Prototipo de la función mesero() */
 6       
 7 int main( void )
 8 { 
 9   printf( "Voy a convocar al mesero.\n" );
10   mesero();
11   printf( "Si. Trae algunos DVDs grabables y té.\n" );
12   return 0;
13 }
14 
15 void mesero( void )            /* Definición de la función mesero() */
16 {
17   printf( "¿Me llamó, señor?\n" );
18 }

Resultado

[rrc@Pridd CClase]$ gcc -Wall -O2 -o Prog3 Prog3.c
[rrc@Pridd CClase]$ ./Prog3
Voy a convocar al mesero.
¿Me llamó, señor?
Si. Trae algunos DVDs grabables y té.

Explicación

En este ejemplo vemos como crear una función hecha por nosotros, para luego ser llamada en el transcurso del programa las veces que sean necesarias.


void mesero( void ); /* Prototipo de la función mesero() */
Primero antes que nada se deben declarar todas las funciones que deseamos crear. En la linea de arriba vemos declarado el prototipo de la funcion mesero la cual no va a regresar ningun valor " void " y no se le van a enviar argumentos " (void) ".


mesero();
En esta linea estamos llamando a la funcion mesero


Luego de finalizar la funcion principal main con el cierre de las llaves } se definen todas las funciones previamente declaradas al principio del programa de la siguiente forma:

void mesero( void )            /* Definición de la función mesero() */
{
  printf( "¿Me llamó, señor?\n" );
}


Note que es importante que tanto cuando se define la función o sea llamada en el programa, sea usada tal cual se declaró en el prototipo al inicio del programa, ya que de no ser así no se va a poder compilar. Por ejemplo, si se declaró que no se va a enviar ningún argumento " (void) ", y se le enviara argumento al momento de ser llamada la función, definitivamente va a tirar un error el compilador.