Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fafafa01 en 14 Diciembre 2016, 20:03 pm



Título: declarar el prototipo de una función adentro del bloque main (explicitamente)
Publicado por: 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.


Título: Re: declarar el prototipo de una función adentro del bloque main (explicitamente)
Publicado por: Naimaderis en 14 Diciembre 2016, 21:58 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.


Título: Re: declarar el prototipo de una función adentro del bloque main (explicitamente)
Publicado por: engel lex en 14 Diciembre 2016, 22:09 pm
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...


Título: Re: declarar el prototipo de una función adentro del bloque main (explicitamente)
Publicado por: fafafa01 en 14 Diciembre 2016, 23:02 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.


Título: Re: declarar el prototipo de una función adentro del bloque main (explicitamente)
Publicado por: 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.


Título: Re: declarar el prototipo de una función adentro del bloque main (explicitamente)
Publicado por: fafafa01 en 16 Diciembre 2016, 00:05 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


Título: Re: declarar el prototipo de una función adentro del bloque main (explicitamente)
Publicado por: MAFUS en 16 Diciembre 2016, 09:06 am
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.


Título: Re: declarar el prototipo de una función adentro del bloque main (explicitamente)
Publicado por: do-while en 17 Diciembre 2016, 04:44 am
¡Ostras! ¡Han incluido los threads en la librería estandar! Tendré que ponerme al día...

¡Gracias por el enlace!