Отсутствие функции целочисленной степени в стандартных библиотеках C имеет вызвало вопросы у программистов. Несмотря на кажущуюся простоту, эта функция явно отсутствует в предоставленном наборе математических инструментов.
До C 11 в функции pow не было целочисленных перегрузок. Это упущение, вероятно, коренится в историческом контексте развития C и C.
На заре C вычисления с плавающей запятой были менее распространены в системном программировании. Более того, целью ANSI C была кодификация существующей практики, а не внедрение инноваций. Таким образом, добавление интегрального оператора степени не было приоритетом.
C изначально унаследовал многие атрибуты от C. Он был в первую очередь разработан как дополнение к C объектно-ориентированными функциями, а не как полная переработка его ядра. функциональность.
Органы, устанавливающие стандарты C, действуют в соответствии с конкретными рекомендациями. В этих рекомендациях приоритет отдается простоте и единообразию языка, ограничивая добавление избыточных или дублирующихся функций.
Кроме того, комитеты по установлению стандартов должны учитывать альтернативные издержки внедрения новых функций. Добавление, казалось бы, тривиальной функции может вытеснить другие, более ценные улучшения из включения в стандарт.
В C 11 было внесено существенное изменение: добавлены перегрузки которые допускают целочисленные аргументы в функции pow. Это изменение соответствует более широкой тенденции включения большего количества математических функций в стандартную библиотеку.
Для аргументов с плавающей запятой функция обрабатывает переполнение и потерю значения последовательным и явным образом. Однако для целочисленных аргументов он фактически обновляет их до двойных значений для выполнения операции.
На отсутствие функции pow(int base, int exdependent) в более ранних версиях C повлияло историческими причинами и ограничениями, связанными с установлением стандартов. Ее появление в C 11 отражает меняющиеся потребности программистов и постоянное расширение возможностей стандартной библиотеки.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3