Если я пытаюсь напечатать float
как int
, этот код:Может кто-нибудь объяснить выход
main() {
float a = 6.8f;
printf("%d", a);
}
печатает 1073741824, в то время как этот код:
main() {
float a = 9.5f;
printf("%d", a);
}
печатает 0.
Является ли вывод неопределенным? Также когда %f
используется с целым числом и %d
используется с двойным?
выход мусор или неопределенной операция? – akash
Возможный дубликат [печать значения поплавка в целочисленном виде на языке C] (http://stackoverflow.com/questions/1632080/print-the-float-value-in-integer-in-c-language) – duDE
функция, которая принимает переменное количество аргументов ('printf()') без прототипа в области видимости - UB. Используйте '#include' для правильного прототипа. –
pmg