2012-05-24 14 views
5

chcę definiować stałe, czy coś jest prawdziwe, i użyć jej wartość wewnątrz „systemu (” ");czynienia ze stałymi wewnątrz funkcjonuje

Na przykład:

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


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

wiem, że jest clrscr(); w conio.h/conio2.h ale to tylko przykład. A kiedy próbuję go uruchomić, to mówi cls nie jest zadeklarowana, lub że CLRSCR nie jest poleceniem wewnętrznym (bash)

Dzięki

Odpowiedz

6

Stała jest identyfikatorem , a nie dosłowneciąg (literały łańcuchowe mają podwójne cudzysłowy wokół nich; identyfikatory nie).

Z drugiej strony, stała wartość jest dosłownym ciągiem znaków, a nie identyfikatorem. Musisz to zmienić:

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


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

Rozwiązałem mój problem. Dziękuję Ci! – ghaschel

4

Trzeba to:

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


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

Dziękujemy! Rozwiązałem mój problem. – ghaschel

Powiązane problemy