lunes, 23 de enero de 2012

Tutorial de programación C/C++ desde 0. Capitulo 6


Hola a todos... en este capítulo aprenderemos a usar mejor el precompilador mediante el uso de #ifdef e #ifndef.

Aquí tenéis el código de hoy:




#include <stdio.h>
#include <stdlib.h>

//Este define nos activará el funcionamiento con mayusculas. Si queremos los textos en minúsculas tendremos que comentar el define.
#define __MAYUSCULAS__

#define NUM 53

int decide(int n)
{
#ifdef __MAYUSCULAS__
printf("EL NUMERO QUE HE PENSADO ES ");
#else
printf("El numero que he pensado es ");
#endif
if( n < NUM )
#ifdef __MAYUSCULAS__
printf("MAYOR.\n");
#else
printf("mayor.\n");
#endif
else
{
if(n > NUM)
#ifdef __MAYUSCULAS__
printf("MENOR.\n");
#else
printf("menor.\n");
#endif
else
{
#ifdef __MAYUSCULAS__
printf("IGUAL.\n");
#else
printf("igual.\n");
#endif
return 1;
}
}
return 0;
}

int main(void)
{
int num;

while(1)
{
#ifndef __MAYUSCULAS__
printf("Introduzca un numero : ");
#else
printf("INTRODUZCA UN NUMERO : ");
#endif
scanf("%d",&num);

if ( decide(num) )
break;
}

system("PAUSE");
return 0;
}

- El carácter // indica comentario, es decir, código que no se compilará pero que ayuda a entender el código mejor. Un código sin comentar es un código que no sirve para (casi) nada.
- Recordad que # indica directiva de precompilador, es decir, lo que haga esa función no se compilará sino que servirá para modificar el código antes de que se compile (como si fueran las instrucciones de un procesador de textos)
- #define __MAYUSCULAS__ Nos define __MAYUSCULAS, en este caso, __MAYUSCULAS no sirve para almacenar  un valor sino que define un comportamiento. Si nosotros activamos el define todos los textos se pondrán en mayusculas, si lo desactivamos (lo borramos o lo comentamos) los textos estarán en minusculas.
- #ifdef . Directiva del precompilador que nos habilita ese código para compilar si se cumple que su parametro está definido
- #ifndef . Directiva del precompilador que nos habilita ese código para compilar si NO se cumple que su parametro esté definido.
- #else (sino, en otro caso, del ifdef)
- #endif Directiva del precompilador que indica que ha acabado el #ifdef o #ifndef (o #else)

Espero que con esto lo tengáis un poco más claro.

Como vais?. Alguien ha probado algo? Avanzáis? Tenéis dudas? Si alguien tiene sugerencia para próximos capítulos que me la haga llegar sin problema.

Nos vemos

Siguiente capítulo
LordPakusBlog

7 comentarios :

  1. Este comentario es sólo para decirte que sigo tu curso. Ánimo que seguro que somos muchos.

    ResponderEliminar
  2. Gracias Tzxoni!!

    Estaria bien que cada uno que sigue el curso hiciera un +1 a cada tutorial :D :D :D. Es broma, aunque te parezca mentira, este tipo de comentarios como el tuyo dan muchos ánimos para seguir escribiendo.

    Se te ocurre que puede explicar en el siguiente capitulo? Algo que tengas dudas?

    Nos vemos!!

    ResponderEliminar
    Respuestas
    1. Hola,qisiera decirte que si puedes escribir sobre como compilar en c con visual studio 2010,ya que intento poner la funcion gotoxy y textcolors y me dice el programa que no esta definido,mi correo es alfacemtauro@hotmail.com,gracias por los aportes un saludo

      Eliminar
    2. Manu,
      A ver, el problema que me relatas es que antes trabajabas con TurboC o BorlandC y te acostumbraste a usar la libreria conio.h . El problema de esta libreria es que no forma parte del standar C/C++ sino que fue una libreria que se sacó Borland de la manga.
      En VisualStudio no se de ningun port de esta libreria, en DevCpp si que me suena que hicieron algo, aunque sinceramente, no te lo recomiendo para nada. Esta libreria no ha hecho más que traer malos rendimientos y malos habitos de programación.

      Espero poder ayudarte en otros temas, nos vemos

      Pako

      Eliminar
    3. Gracias por la respuesta Pako,seguire tu consejo ya que llebo unos dos meses en realidad estudiando por mi cuenta c y bueno son muchas dudas pero con personas como tu es algo mas ameno,un saludo y seguire con mucho interes tus aportes.

      Eliminar
  3. Pako, te pregunto que significa "comentar" la función define. No lo entendí

    ResponderEliminar

Entradas populares