반응형
C++를 하다보면 자신이 알고있는 C언어 표준함수를 사용하고 싶을때가 있다.
<C를 더하고 .h를 빼라>
#include <stdio.h> --> #include <cstdio>
#include <stdlib.h> --> #include <cstdlib>
#include <math.h> --> #include <cmath>
#include <string.h> --> #include <cstring>
가급적 C++의 헤더를 사용해야하는 이유
C++관점에서 다음과 같은 함수호출을 허용하는 이유는 '하위버전과의 호환성'을 제공하기 위함으로 볼 수 있습니다.
#include <stdio.h>
~~
C++표준 라이브러리가 제공하는 함수들과 C표준 라이브러리가 제공하는 함수들이 완전히 일치하는 것이 아닙니다. 예를 들어 abs함수는 C표준에서 다음과 같이 선언되어 있습니다.
int abs(int num);
반면, C++에서는 다음과 같이 오버로딩 되어있습니다.
long abs(long num);
float abs(float num);
long double abs(long double num);
C++에서는 함수 오버로딩이 가능하기 때문에 자료형에 따라서 함수의 이름을 달리해서 정의하지 않고 보다 사용하기 편하도록 오버로딩 한 것입니다. 이렇듯 C++문법을 기반으로 개선된 형태로 라이브러리가 구성되어 있으므로, 가급적 C++의 표준헤더를 이용해서 함수를 호출하는 것이 좋습니다.
반응형
'IT > Programming' 카테고리의 다른 글
C++ <클래스와 객체> (0) | 2023.04.18 |
---|---|
C++ <C++의 구조체> (0) | 2023.04.18 |
C++ <new&delete> (0) | 2023.04.18 |
C++ <참조자reference 이해> (0) | 2023.04.18 |
C++ <C언어 기반의C++> (0) | 2023.04.18 |