안녕하세요,
재재입니다.
이번 포스팅은,
c++ 에서 사용하는 abs 에 대해서 알아볼려고 하는데요!
c++ abs vs std::abs 이 둘의 차이에 대해서 한번 자세히 설명해볼게요!
(1) stdlib.h abs
먼저, stdlib.h header 의 abs 함수입니다.
stdlib.h 는 c 언어의 표준 라이브러리입니다.
c 언어 표준 라이브러리에서 사용되는 std::abs 함수는,
정수형 절대값을 계산할 때 사용합니다.
함수의 인자는 long long (8 byte 정수형) 변수입니다.
(2) algorithm abs
다음은, algorithm header 의 abs 입니다.
std::abs 함수는 각 타입에 대한 오버로드 함수를 가지고 있습니다.
즉, 필요에 따라 함수 오버로드를 통해 타입에 맞는 std::abs 함수를 호출합니다.
(3) cstdlib abs
cstdlib 는 C++ 표준 라이브러리로,
algorithm 의 abs 과 같이 함수 오버로드를 지원합니다.
https://en.cppreference.com/w/cpp/header/cstdlib
(4) 결론
각 용도에 맞는 함수를 사용하는 것은 당연하지만,
stdlib.h 를 선언하면서 abs 를 사용하는 것 보다는,
용도나 확장성 측면에서,
Macro 형태로 구현 혹은 C++ 표준 라이브러리를 쓰는 게 좋을 거 같습니다.
같이 보면 좋은 inline function 포스팅도 있습니다.
c++ abs vs std::abs (Feat. stdlib, algorithm)