Prototipo de la función

Es una de las características mas importantes en C, En el prototipo se indican el tipo de dato que retorna la función, el número, tipo y orden de parámetros que recibe la misma. El compilador utiliza los prototipos para verificar las llamadas a funciones. Antes el prototipado no existía y el compilador no podía detectar ciertos errores. 
El siguiente prototipo nos sirve para sacar la cantidad  máxima entre los 3 números.

int maximo (int x, int y, int z)


Se ve extraña no?
para que no te confundas tanto pondré el código completo...

  1. /* Programa 3.0: Sacando el numero máximo de entre 3 números. */
  2. # include <stdio.h>

  3. int maximo (int x, int y, int z); /* el prototipo lleva punto y coma */
  4. int main ()
  5. {
  6. int numero1;
  7. int numero2;
  8. int numero3;
  9. printf("introduzca 3 numeros enteros\n");
  10. scanf("%d%d%d", &numero1, &numero2, &numero3);
  11. printf("el maximo es %d",  maximo (numero1, numero2, numero3) );
  12. return 0;
  13. }
  14. int maximo (int x, int y, int z) 
  15. {
  16. int max = x;
  17. if (y > max) {
  18. max = y;
  19. }
  20. if (z > max) 
  21. max = z;

  22. return max;
  23. }

Ya se comprende mas no es así? para que se entienda mejor puse en rojo lo que es el prototipo de la función, como ves primero invocamos el prototipo y luego lo describimos. pero de que nos sirve esto? simple, para no estar escribiendo la misma función una y otra y otra ves en caso de que el programa así lo requiera para llegar al resultado, como lo ves es así de simple, pero me costo mucho trabajo entenderlo, pues el libro por una extraña razón no lo explicaba bien. 

Y bueno esto es todo por ahora, ¿se comprendió todo? si tienes alguna duda no pienses en publicarla, con gusto te responderé. en caso de que falte algo con gusto también lo agregare.


Agrego dato importante URL_Pagina
Este prototipo indica que la función de nombre máximo retorna como resultado un valor de tipo entero. Además informa que la función debe ser llamada con tres parámetros del tipo entero también.
El prototipo también sirve para la coerción de argumentos, o sea, si la función es llamada con valores de otro tipo diferentes a los definidos en el prototipo de esa función, el compilador tratará de convertir esos valores a los tipos de datos correspondientes declarados en el prototipo (esto funcionará siempre y cuando sea posible la conversión entre esos tipos de datos). Por ejemplo, si la función espera un entero y recibe un decimal, intentará convertir ese decimal al entero truncando la parte decimal, lo cual puede generar errores si la exactitud de ese dato es importante. Por esta razón se debe tener mucho cuidado en la coerción de tipos automática. 
El prototipado de funciones puede omitirse cuando se programa; el compilador formará el prototipo dependiendo de la primera aparición de la función. También, por omisión, el compilador asume que toda función regresa un valor del tipo entero de forma predeterminada.

5 comentarios:

  1. hola amig@...
    tu bolg esta bueno pero!!! creo que la duda que tengo no se si lo dominas.
    me ayudarias en la creacion de un programa el cual me de la secuencia fibonacci en c?

    si puedes de verdad te lo agradecere. y nos podriamos comunicar por mi correo:
    gec93@hotmail.com.

    ResponderEliminar
    Respuestas
    1. secuencia fibonacci, si de hecho trabaje con ella hace poco en mi clase de informática, hice solamente el diagrama de flujo pero lo podemos pasar a C, y con tu pregunta, en realidad no lo domino al 100, pero si te puedo ayudar. ahora te agrego.
      saludos

      Eliminar
  2. hola buena pagina! espero siga creciendo!,, tengo un par de correciones para hacer en los codigos de la pagina,, si te interesa deja tu msn y te agrego, saludos!

    ResponderEliminar
    Respuestas
    1. claro que si amigo! ojala puedas ver esta respuesta. mi correo es alexxh42@gmail.com
      agregame saludos!

      Eliminar
    2. Listo,, ya te envie un mail a tu correo con las correciones de este codigo,, fijate tambien en el de random hay varias correciones importantes que hacer, tal vez tu te des cuenta, saludos!

      Eliminar