ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 апреля
814732 Топик полностью
lloyd (06.02.2018 07:46, просмотров: 109) ответил Ксения на Double-константы вполне подходят для флоат-операций. Да и вообще, при наличии в числе десятичной точки концовку F или D можно опускать, не указывая на принадлежность явно - все равно лишние знаки будут потеряны при конверсии в бинарную форму без
> при наличии в числе десятичной точки концовку F или D можно опускать Авотхрен. Если принудительно не заставить компилятор считать все во флоатах, то операция float a = my_float_b * 2.5; перегонит my_float_b в double, произведет программное умножение, перегонит результат во float и только потом произведет присваивание. Разумеется мы говорим про ABI, в которых double 64-битный. В то же время запись float a = my_float_b * 2.5F; Будет явно говорить, что работаем мы тут во float и никаких конверсий делать нельзя. Для типозависимого кода есть следующие пути 1. Объявить макросом c_const(x), который будет кастовать число к нужному нам типу 2. Использовать tgmath.h вместо math.h Так что, Ксения, -Wdouble-promotion (не знаю, как он у вас яре называется) вам в помощь. Если не хотите диких тормозов на DSP-операциях - нужно внимательно следить за преобразованиями типов