- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
#include <stdio.h>
int main() {
double x = 0.11111;
printf("%lld\n", x);
double y = 0.11111;
printf("%lld\n", y);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
#include <stdio.h>
int main() {
double x = 0.11111;
printf("%lld\n", x);
double y = 0.11111;
printf("%lld\n", y);
}
https://ideone.com/FHKfA6
УБЭ?
https://ideone.com/4qg6pb
А, я понял, почему! %lld - это должен быть не double, a long long double!
long long double is too long for GCC
Дискриминация
short long long - 6 байт
2 short
3 long short
4 int
5 short short long
6 short long
7 long short long
8 long
Вот тут clang детально обьясняет для альтернативно одаренных
В любом случае дело то не в языке, а в библиотеках. :)
Повод задуматься о библиотеках для ответственного использования. :(