Во-первых, моя ошибка - определение двух константных выражений без скобок:
#define BIG_INTERVAL 60 * 60 * 1000
#define SMALL_INTERVAL 1 * 1000
int i = 1;
if (i >= BIG_INTERVAL / SMALL_INTERVAL - 1)
{
printf("Oops!\n");
}
Оператор if
после раскрытия макроса имеет вид if (i > = 60 * 60 * 1000/1 * 1000 - 1)
.
Это не мое намерение. Но я нахожу что-то странное, если напишу if (i> = 3600000000 - 1)
. Это неверно.
Какой тип 60 * 60 * 1000/1 * 1000 - 1
? int
?