haker_fox 85 January 31, 2024 Posted January 31, 2024 · Report post 13 hours ago, razrab83 said: Может в IAR 9-ке добавили этот ворнинг? Похоже на это. Моя предыдущая версия компилятора 8.40. В нём сборка происходила без этих предупреждений. Quote Share this post Link to post Share on other sites More sharing options...
razrab83 26 January 31, 2024 Posted January 31, 2024 · Report post 12 часов назад, tonyk_av сказал: Тут пробовали отключать? Нет. Я же говорю 20 часов назад, razrab83 сказал: его конечно можно заглушить декертивами или настройками, или явным приведением типа к double. Но что-то не очень нравиться работать с double Придется пока смериться с double, а в дальнейшем возможно писать свой sprintf или использовать сторонний. Их уже навелосипедили не мало. Quote Share this post Link to post Share on other sites More sharing options...
tonyk_av 71 January 31, 2024 Posted January 31, 2024 · Report post 3 hours ago, razrab83 said: а в дальнейшем возможно писать свой sprintf А чем ваш printf() будет отличаться от библиотечного в части работы с числами с плавающей запятой? Понимает, на что я намекаю? Quote Share this post Link to post Share on other sites More sharing options...
razrab83 26 January 31, 2024 Posted January 31, 2024 (edited) · Report post 7 минут назад, tonyk_av сказал: А чем ваш printf() будет отличаться от библиотечного он будет по %f (или по %k) принимать float Edited January 31, 2024 by razrab83 Quote Share this post Link to post Share on other sites More sharing options...
Сергей Борщ 177 January 31, 2024 Posted January 31, 2024 · Report post 1 час назад, razrab83 сказал: он будет по %f (или по %k) принимать float "принимать-то он будет, да только кто ж ему даст?" Это особенность передачи параметров в функции с переменным числом аргументов. https://en.cppreference.com/w/cpp/language/variadic_arguments Все целое, меньшее int, неявно приводится к int, float неявно приводится к double. Чтобы передать float придется писать свой компилятор, но это будет уже "язык, похожий на Ц". Quote Share this post Link to post Share on other sites More sharing options...
tonyk_av 71 January 31, 2024 Posted January 31, 2024 · Report post 1 hour ago, Сергей Борщ said: float неявно приводится к double Вот именно, на это я и намекал. Поэтому толку от переписывания библиотечной функции будет ровно ноль. 1 hour ago, Сергей Борщ said: Чтобы передать float придется писать свой компилятор Вроде, как раз у ИАР есть опция компилятора, позволяющая изменять типы данных, используемые по умолчанию, то есть он будет вместо double передавать float. Quote Share this post Link to post Share on other sites More sharing options...