declarar el prototipo de una función adentro del bloque main (explicitamente)

Iniciado por fafafa01, 14 Diciembre 2016, 20:03 PM

0 Miembros y 2 Visitantes están viendo este tema.

fafafa01

Buenas, estoy leyendo el libro "El lenguaje de programación C" de Brian Kernighan y en la pagina 80 del capitulo 4 (funciones y la estructura del programa) hay un código donde declara el prototipo de la función atof (previamente echa) dentro del bloque main, porque hace esto y no la declara antes de entrar al bloque main ¿tiene alguna ventaja?

según el libro declara atof explicitamente en la rutina que la llama.

Naimaderis

Cita de: fafafa01 en 14 Diciembre 2016, 20:03 PM
Buenas, estoy leyendo el libro "El lenguaje de programación C" de Brian Kernighan y en la pagina 80 del capitulo 4 (funciones y la estructura del programa) hay un código donde declara el prototipo de la función atof (previamente echa) dentro del bloque main, porque hace esto y no la declara antes de entrar al bloque main ¿tiene alguna ventaja?

según el libro declara atof explicitamente en la rutina que la llama.

¿Que tal es ese libro? Yo estoy usando "cómo programar en c c++ deitel". Tengo la misma duda con respecto a los prototipos.

engel lex

se puede declarar dentro del bloque main, pero no hay ninguna utilidad hasta donde se, incluso es una practica poco recomendada... me imagino que será para casos especificos controlar el uso de memoria o algo así, aunque  no tiene mucho sentido...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

fafafa01

Cita de: Naimaderis en 14 Diciembre 2016, 21:58 PM
¿Que tal es ese libro? Yo estoy usando "cómo programar en c c++ deitel". Tengo la misma duda con respecto a los prototipos.

es un buen libro, lo elegí porque el co-autor del libro es el que creo el lenguaje C.

MAFUS

Si intentas ejecutar esa función dentro de otra que se haya definido antes que esa verás que no la va a reconocer.

Una función es como una variable: solo puede usarse dentro del ámbito donde, almenos, se ha declarado su firma.

Si estás aprendiendo con el libro de K&R, que es una buena lectura, depués tendrás que actualizarte para el estándar C11, han cambiado muchaa cosas desde entonces hasta ahora.

fafafa01

Cita de: MAFUS en 15 Diciembre 2016, 06:56 AM
Si intentas ejecutar esa función dentro de otra que se haya definido antes que esa verás que no la va a reconocer.

Una función es como una variable: solo puede usarse dentro del ámbito donde, almenos, se ha declarado su firma.

Si estás aprendiendo con el libro de K&R, que es una buena lectura, depués tendrás que actualizarte para el estándar C11, han cambiado muchaa cosas desde entonces hasta ahora.

gracias, de donde puedo sacar la actualización para el estandar C11

MAFUS

http://www.iso-9899.info/wiki/The_Standard

Aquí encontrarás enlaces a los documentos, que se deben comprar. De todas formas está el borrador o anteproyecto, o como quieras llamarlo, que es gratuito. Si sigues el enlace llamado N1570 conseguirás el paper más próximo posible al estándar de forma gratuita.

do-while

¡Ostras! ¡Han incluido los threads en la librería estandar! Tendré que ponerme al día...

¡Gracias por el enlace!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!