int jest zależny od ustawień kompilatora (może być nawet 16 bitowy). Ostrzeżenie jest bo masz porównanie signed i unsigned. Dodatkowo przy dużych optymalizacjach przy przepełnieniu typu signed (co jest ub) może program zachować się dziwnie. Jeśli masz pewność, że nie będzie przekroczenia zakresów zrób rzutowanie, by pozbyć się ostrzeżenia.