Closed sergregory closed 9 years ago
То есть лучше писать для математических функций, например таких как модуль abs, заголовочный файл, например,
Ну нужно подключать заголовочный файл где объявлены эти функции.. Просто студия и так компилирует, но вообще говоря не должна, а если подключишь то везде будет работать.
В принципе да, можно подключить только тот, где объявлены эти функции для типов с плавающей точкой, но тогда если ты будет в функцию передавать int и результат присваивать инту, компилятор будет выдавать предупреждение что ты сужаешь тип переменной.
В общем я поняла, что бы не было предупреждений, надо использовать для каждого типа свою библиотеку. Просто иногда сложно запомнить какую нужную для каждого типа. Я думала для таких функций math.h достаточно.
Я тоже думал её достаточно, но вот оказалось что нет) сам из интернета узнал
abs
function is specified in header<cstdlib>
for int/long/etc and in header<cmath>
for float and double. In both cases it is wrapped into the namespace std. MSVS allows to use this function just by including<math.h>
header, but more correct way is to include one of<cstdlib>
or<cmath>
(these a c++ names for c headersstdlib.h
andmath.h
, correspondingly) and call this function asstd::abs
or useusing namespace std
directive. cppreference.com: abs(int) cppreference.com: abs(float)P.S. on linux I just can't build the project without these modifications...