Когда я пытаюсь сделать неявное приведение от двойного к беззнаковому длинному, у меня появляется предупреждение о переполнении: «предупреждение: переполнение при неявном преобразовании константы [-Woverflow]».
Вот инструкция:
unsigned long ulongMax = pow(2.0, 64.0) - 1;
Но когда я явно использую это, как показано ниже, все в порядке!
unsigned long ulongMax = (unsigned long) (pow(2.0, 64.0) - 1);
Я не понимаю, почему у меня есть предупреждение, результат (18446744073709551615) такой же, как ULONG_MAX
из заголовка "limits.h".
printf("%lu\n", ULONG_MAX);
- person M.M   schedule 27.11.2015