Поделиться через


cprintf

Имя cprintf функции, определенной корпорацией Майкрософт, является устаревшим псевдонимом для _cprintf функции. По умолчанию он создает предупреждение компилятора (уровень 3) C4996. Имя устарело, так как оно не соответствует стандартным правилам C для имен, относящихся к реализации. Однако функция по-прежнему поддерживается.

Вместо этого рекомендуется использовать функцию _cprintf с повышенным _cprintf_s уровнем безопасности. Кроме того, вы можете продолжать использовать это имя функции и отключить предупреждение. Дополнительные сведения см. в разделе "Отключение имен функций предупреждения и POSIX".

Важно!

Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.

Начиная с Windows 10 версии 2004 (сборка 19041), printf семейство функций выводит точно представленные числа с плавающей запятой в соответствии с правилами IEEE 754 для округления. В предыдущих версиях Windows точно представленные числа с плавающей запятой, заканчивающиеся на "5", всегда округлялись. IEEE 754 утверждает, что они должны округлиться до ближайшей даже цифры (также известной как "Округление банкира"). Например, оба printf("%1.0f", 1.5) и printf("%1.0f", 2.5) должны округлиться до 2. Ранее 1,5 округляет до 2 и 2,5 округления до 3. Это изменение влияет только на точно представленные числа. Например, 2.35 (который при представлении в памяти приближается к 2,3500000000000000008) продолжает округляется до 2,4. Округление, выполняемое этими функциями, теперь также учитывает режим округления с плавающей запятой, заданный fesetround. Ранее округление всегда выбрало FE_TONEAREST поведение. Это изменение влияет только на программы, созданные с помощью Visual Studio 2019 версии 16.2 и более поздних версий. Чтобы использовать устаревшее поведение округления с плавающей запятой, свяжите со legacy_stdio_float_rounding.objссылкой.