2012-05-24 11 views
5

quiero definir una constante si algo es cierto, y el uso de su valor dentro de un "sistema (" ");Tratar con constantes dentro de funciones

Por ejemplo:

#ifdef __unix__ 
# define CLRSCR clear 
#elif defined _WIN32 
# define CLRSCR cls 
#endif 


int main(){ 
    system("CLRSCR"); //use its value here. 
} 

Sé que hay clrscr(); en conio.h/conio2.h pero esto es sólo un ejemplo. Y cuando trato de iniciarlo, se dice cls no se ha declarado, o que clrScr no es un comando interno (bash)

Gracias

Respuesta

6

constante es un identificador , no una cadena literal (literales de cadena tienen dobles comillas alrededor de ellos; identificadores no).

El valor constante, por otro lado, es una cadena literal, no un identificador. Necesita cambiarlo de esta manera:

#ifdef __unix__ 
# define CLRSCR "clear" 
#elif defined _WIN32 
# define CLRSCR "cls" 
#endif 


int main(){ 
    system(CLRSCR); //use its value here. 
} 
+0

Resolvió mi problema. ¡Gracias! – ghaschel

4

Esto es necesario:

#ifdef __unix__ 
    #define CLRSCR "clear" 
#elif defined _WIN32 
    #define CLRSCR "cls" 
#endif 


system(CLRSCR); //use its value here. 
+0

¡Gracias! Resolvió mi problema – ghaschel

Cuestiones relacionadas