Author Topic: #ifdef #endif C++  (Read 454 times)

Offline mentalthink

  • Prof. Inline
  • *****
  • Posts: 3321
  • Integrated Brain
    • View Profile
#ifdef #endif C++
« on: 2017-Jul-18 »
Hola Compañeros, quería haceros una pregunta del pre-Procesador para C++, aunque supongo que en GLbasic será más o menos igual.
Code: GLBasic [Select]
void show_configuration()
{
std::cout <<
#ifdef _DEBUG
"debug"
#else
"release"
#endif
<< std::endl;
}
 

Estoy haciendo esté código en CodeBloks, y no me funciona, lo que no se es si yo estoy confundido con el funcionamiento que tiene que hacer, me explico:
Si yo le digo al IDE que compile en modo DEBUG, el programa sabe que está en DEBUG?¿, o tengo que asociarle algún valor como 1 o 0?¿.

Un saludo y gracias como siempre por vuestro tiempo. Saludotes.

Offline hardyx

  • Community Developer
  • Dr. Type
  • ******
  • Posts: 479
    • View Profile
Re: #ifdef #endif C++
« Reply #1 on: 2017-Sep-05 »
Nuevamente siento responder tarde.

CodeBlocks en Windows usa por defecto el compilador MINGW, que es un port de GCC. Este compilador creo que no define nada en modo debug, con lo cual tendrías que definirlo a mano en las "build properties" de Debug con la pestaña "#defines" poner _DEBUG por ejemplo. También puedes mirar las propiedades del compilador (CBlocks permite usar muchos compiladores), en la parte de build properties > compile options > #defines.

Estos defines te sonarán de Visual C++, pero GCC no define nada y depende de la implementación del sistema. GCC está implementado en muchos sistemas (Windows, Linux y todo tipo de aparatos).

Offline mentalthink

  • Prof. Inline
  • *****
  • Posts: 3321
  • Integrated Brain
    • View Profile
Re: #ifdef #endif C++
« Reply #2 on: 2017-Sep-08 »
Ok Hardyx gracias... Bueno estoy en Linux aunque GLBasic funciona muy bien en Wine.
Ya me miraré lo que me comentas del GCC que por aquí tengo un librico.
Gracias por la respuesta.