Здравствуйте!
Объясните, пожалуйста, принцип работы компилятора на следующих тест-примерах.
Пример 1 (вычисления правильные):
Код
unsigned char Tmpr = 235 - (unsigned long) 400 * 7800 / 14200; // = 16
Пример 2 (вычисления неправильные):
Код
unsigned char Tmpr = 235 - 400 * 7800 / 14200; // = 236
Почему требуется обязательное приведение типа одного из операндов к unsigned long, а не результата вычисления?
И почему оно вообще требуется?
Благодарю заранее!
Сообщение отредактировал n_bogoyavlensky - Sep 22 2009, 09:25