Разница, которая не влияет, не стоит беспокоиться.
Компилятор (по сути) игнорирует имена аргументов atan2()
, поскольку это не определение (т. Е. Реализация функции). Пока определение функции (реализация) вычисляет арктангенс в радианах первого аргумента, деленное на второе, выполняется реализация atan2()
.
Важно, чтобы ошибка в этом определении atan2f()
заключалась в том, что первый и второй аргументы передаются в atan2()
в том же порядке. Это происходит, поэтому (при условии правильности определения atan2()
) функционального дефекта нет, а выражение atan2f(a,b)
будет вычислять арктангенс a/b
- это то, что требует стандарт.
Единственный потенциальный недостаток заключается в понимании людьми того, что делают функции. Но, вообще говоря, желательно, чтобы люди ссылались на документацию стандартных функций для понимания, а не на файлы заголовков. Это стилистический недостаток, а не функциональный.
Ну, некоторые обсуждения об этом: http://www.ogre3d.org/forums/viewtopic.php?f=10&t=54415. Проверьте, сравнивая результаты atan2f (x, y) и atan2f (y, x), если это опечатка или они действительно в неправильном порядке. Тогда вы узнаете :) – senfen