У меня есть два примера:
unsigned long l = ULONG_MAX;
char c = -1;
if (c == l)
std::cout << "-1 = 4,294,967,295?";
вывод: "- 1 = 4 294 967 295?"
unsigned char l = 255;
char c = -1;
if (c == l)
std::cout << "-1 = 4,294,967,295?";
Выход:
Почему первый пример генерирует вывод, а второй нет?