Cómo crear prototipos de una función en la programación c
¿Qué sucede cuando usted no prototipos? Como con cualquier cosa en la programación C, cuando goof arriba, el compilador o enlazador le permite saber con un mensaje de error - o el programa simplemente no se ejecuta correctamente. No es el fin del mundo - no, no como programar un robot militar o el diseño de código genético de una nueva especie de Venus atrapamoscas.
BÁSICO funcionalidad NO RETORNO
#include pronta void () - / * Función prototipo * / int () {int entrada principal loop-char [32] -loop = 0-tiempo (looplt; 5) {rápidas () - fgets (entrada, 31, stdin) -loop = bucle + 1-} return (0) -} / * indicador de pantalla * / void prompt () {printf ("C: DOS>") -}
Ejercicio 1: Modificar el código fuente de Basic Función- sin retorno. Comentar el prototipo de la Línea 3. Construir el resultado.
Errores del compilador son cosas maravillosas, deliciosamente precisos todavía enteramente crípticos. Aquí está el mensaje de error generado por Code :: Blocks, aunque sólo las partes pertinentes del mensaje:
13 Advertencia: declaración implícita de la función 'prompt'23 Advertencia: conflicto tipos para' prompt'13 Advertencia: declaración implícita previa de 'pronta' fue aquí
El primer aviso se produce en la línea 13 en el archivo de código fuente, donde se utiliza la función pronto () dentro de la función main (). El compilador le está diciendo que usted está utilizando una función sin un prototipo. Como dice el mensaje de error, que está implícitamente declara una función. Eso es un no-no, pero no es un error de lleno-en.
La segunda advertencia se produce cuando la función prompt () habita en el programa. En el código fuente, está en la línea 23. La advertencia indica que prompt () ya fue declarado (en la línea 11) y que el segundo uso puede entrar en conflicto con la primera.
La advertencia final es una referencia de nuevo a donde la función se llama, de nuevo en la línea 13.
Para decirlo en pocas palabras: El compilador no tiene idea de lo que pasa con la función prompt (). Su código se compila, pero el funcionamiento es arriesgado.
Usted puede llegar a la conclusión de que la creación de prototipos es una necesidad absoluta en el código C. Eso no es del todo cierto. Usted puede evitar la creación de prototipos reordenando las funciones de su código fuente. Siempre y cuando una función está en la lista antes de que sea utilizado, no es necesario un prototipo.
Ejercicio 2: Edite el código fuente del Ejercicio 10-3. Retire el prototipo de la función que fue comentada en la Línea 3. Cortar y pegar (mover) la función prompt () de la parte inferior del código fuente inmueble a la parte superior, por encima de la función main (). Guarde, construir y ejecutar.
Evitar el prototipo de función muestra la solución para el ejercicio 2.
EVITAR EL PROTOTIPO DE FUNCIONES
#include / * Mostrar indicador * / void prompt (void) {printf ("C: DOS>") -} int entrada main () {int loop-char [32] -loop = 0-tiempo (looplt; 5 ) {rápidas () - fgets (entrada, 31, stdin) -loop = bucle + 1-} return (0) -}
Escritura de la función main () primero, seguido de otras funciones permite una mejor legibilidad, aunque eres libre de poner sus propias funciones de primera para evitar la creación de prototipos. Y si no lo hace, tenga en cuenta que otros programadores pueden hacerlo de esa manera, así que no se sorprenda cuando lo ves.
Mensajes de error del compilador en Code :: Blocks tienen paréntesis después de ellos. Los comentarios entre paréntesis se refieren a la interruptor, o la opción de línea de comandos tradicional, que permite la comprobación de una advertencia particular. Por ejemplo, los mensajes de error del Ejercicio 1 leen en su totalidad:
11 Advertencia: declaración implícita de la función 'pronta' (-Wimplicit-función-declaración) 20 Advertencia: conflicto tipos para 'pronta' (activado por defecto)