Pintada friki

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:

pintada.jpg

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.

Categorías

Licencia

ClustrMaps

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 :P

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 !!

¡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.