Hace tiempo me encontré en un blog (luego les diré cuál es) esta curiosísima fotografía tomada en un lugar recóndito de una Facultad de Ciencias cuyo nombre omitiremos:
Por si no se entiende muy bien, transcribo el contenido de la pintada:
#INCLUDE <STDIO.H>
VOID MAIN(VOID)
{
PRINTF(“HOLA”);
}
Vale, no es un pasaje de La Eneida, pero, como pintada, tampoco está mal: algunos la habrán identificado como código en lenguaje C. Pero resulta que este código, aunque parece correcto, nunca compilaría tal y como está escrito. ¿A alguien se le ocurre por qué? (Si es usted alumno/a de Fundamentos de Programación debería saberlo)
Añadido el 10/02/08:
La solución al enigma puede encontrarse en este post del muy recomendable blog “No sólo Linux“. Enhorabuena a los premiados.


2 comments
Comments feed for this article
Trackback link
http://profeblog.es/blog/alfredo/2008/02/07/pintada-friki/trackback/
8 Febrero 2008 at 23:42
Dámaso
Hola !! Antes de nada, felicidades por la iniciativa, a ver si se anima algún otro profesor (Guillermo con un blog de física, imagínate! O Pepe Barranquero con uno de música clásica! )
Yendo al post… Pues, así a ojo de buen cubero, el problema debe de estar en la declaración del main… Aunque en la versión de mingw que venimos utilizando en clase, el compilador sólo nos muestra un warning, y ejecuta perfectamente
Siempre quedará mas ortodoxo:
#include
int main()
{
printf(“Hola!”);
return 0;
}
Además es una forma de saber que el programa finalizó corréctamente: devuelve 0 al terminar. Si no lo hace, oh problema! Algo falla!
Un saludo !!
9 Febrero 2008 at 0:20
Alfredo Moreno Vozmediano
¡Buen intento! Tienes razón, main() debe devolver un entero (o eso dice el estándar ANSI C), pero casi todos los compiladores se tragarán un void aunque protesten un poco.
El error es otro, y es una verdadera tontería (a lo mejor por eso cuesta verlo: es tan evidente que uno tiende a pasarlo por alto). El caso es que si tecleamos el código tal y como está en la pintada, no funcionará en ningún compilador.