при попытке использовать переменную, определенную в директиве препроцессора:
#define TIME_CONST 20;
в какое-то время
while(i<TIME_CONST){...}
Я получаю сообщение об ошибке с жалобами на …
когда я использую:
while(i<20)
все отлично работает
Что я делаю неправильно?
Заранее спасибо!
#define TIME_CONST 20;
Удалить ;
с конца.
Потому что ;
, следующие:
while(i<TIME_CONST){...}
становится так:
while(i< 20;){...}
что не так, не так ли?
В C ++ (и C) макросы текст замена механизм, поэтому любое использование TIME_CONST
будет заменен на 20;
потому что так было определено.
Совет: как можно больше избегайте макросов . У вас есть лучшая альтернатива в C ++. использование const
(или же constexpr
) чтобы определить ваш действительно постоянный объект:
const int TIME_CONST = 20;
Сейчас ;
хорошо, на самом деле требуется по языку.
Других решений пока нет …