2012-05-24 33 views
5

Tôi muốn xác định một hằng số nếu có điều gì là đúng, và sử dụng giá trị của nó bên trong một "hệ thống (" ");Đối phó với các hằng số trong chức năng

Ví dụ:

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


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

Tôi biết có clrscr(); trong conio.h/conio2.h nhưng đây chỉ là một ví dụ. Và khi tôi cố gắng để khởi động nó, nó nói cls không được khai báo, hoặc CLRSCR đó không phải là một lệnh nội bộ (bash)

Cảm ơn

Trả lời

6

liên tục là một định danh, không phải là một chuỗi chữ (literals chuỗi có dấu ngoặc kép xung quanh họ; số nhận dạng không).

Giá trị không đổi, mặt khác, là một chuỗi ký tự, không phải là số nhận dạng. Bạn cần phải chuyển đổi nó như thế này:

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


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

Giải quyết vấn đề của tôi. Cảm ơn bạn! – ghaschel

4

Bạn cần điều này:

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


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

Cảm ơn bạn! Giải quyết vấn đề của tôi. – ghaschel

Các vấn đề liên quan