Что такое «int i = 1; Почему (i> = 60 * 60 * 1000/1 * 1000) ”true?

Во-первых, моя ошибка - определение двух константных выражений без скобок:

#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 ?

36
задан Peter Mortensen 25 July 2011 в 10:35
поделиться