2015-02-19 2 views
0

У меня есть #define MAX_PERSONS = 20; после моих заголовков. я пытаюсь сделать, если заявление, где я сравнить Int р к MAX_PERSONSполучение ошибки при использовании операторов if с постоянной переменной - C

int checkString(char string[]){ 
    int p = strlen(string); 
    printf("\n\t\t%s is %d characters long\n", string, p); 
    if (p < MAX_PERSONS){ 
     return 1; 
    } 
    if (p > 20){ 
     return 0; 
    } 
} 

Я получаю эту ошибку menu.c:80:10: error: expected expression before ‘=’ token. Однако, если я переключу MAX_PERSONS на 20, как это сделал со вторым оператором if, он работает.

Мне было интересно, может ли кто-нибудь сообщить мне, почему это происходит, и как я могу использовать постоянную ценность. Благодаря!

ответ

4

Заменить

#define MAX_PERSONS = 20; 

с

#define MAX_PERSONS 20 

#define директива пр-процессор, который заменяет MAX_PERSONS с последующим текстом до компиляции.

+0

Дог, спасибо. Думал, что я правильно определил его все время. – user1730056

+0

@ user1730056 вы можете принять, если он решает вашу проблему. Попытайтесь избежать Спасибо за комментарии к SO. – Vagish

+0

Просто ждал 15 минут, чтобы пройти, чтобы принять! – user1730056