На С е много опасно да ползвате такова сравнение за излизане от цикъл. И проверявали ли сте колко е int на вашата машина? Защото може да е само FFFF
Защо да е опасно ?
п.п. 32 бита е, не е 16
Защото може никога да не стигнете границата. И по спомени ако сравнявате две цели числа по-малкото се конвертира до по-голямото и тогава се сравняват. Т.е. ако имате 0xFFFF и го сравнявате с 0xFFFFFFFF всъщност сравнявате 0x0000FFFF с 0xFFFFFFFF и се получава безкраен цикъл
Проверявате ли го в програмата дали е 16 или 32 битово? А ако пуснете програмата на друга платформа? Или разчитате на описания?