본문 바로가기
Language&Framework&Etc/C++

C언어 기반의 C++ 2(02-6) C++에서 C언어의 표준함수 호출하기

by 머리올리자 2020. 12. 23.

c를 더하고 .h를 빼라

#include <stdio.h>   → #include <cstdio>

#include <stdlib.h>  → #include <cstdlib>

#include <math.h>  #include <cmath>

#include <string.h> #include <cstring>

 

"헤더파일의 확장자인 .h를 생략하고 앞에 c를 붙이면 C언어에 대응하는 C++의 헤더파일 이름이 된다."

 

예제

#define _CRT_SECURE_NO_WARNINGS
#include <cmath>
#include <cstdio>
#include <cstring>
using namespace std;


int main(void)
{
	char str1[] = "Result";
	char str2[30];

	strcpy(str2, str1);
	printf("%s: %f \n", str1, sin(0.14));
	printf("%s: %f \n", str2, abs(-1.25));
}


C++의 헤더를 선언해야 하는 이유

C++ 관점에서, 여전히 다음형태로 함수호출을 허용하는 이유는 '하위 버전과의 호환성'을 제공하기 위함으로 볼 수 있다.

 

#include <stdio.h>
int main(void)
{
	printf("Hello world!");
	return 0;
}

또한 C++ 표준 라이브러리가 제공하는 함수들과 C 표준 라이브러리가 제공하는 함수들이 완전히 일치하는 것도 아니다.

 

C언어 abs 함수

int abs(int num);

C++에서는 다음과 같이 오버로딩

long abs(long num);
float abs(float num);
double abs(double num);
long double abs(long double num);

 

참고 : [윤성우 열혈 C++ 프로그래밍] - 대부분의 내용 및 코드는 이 책에서 개인 공부 정리 목적으로 참고하였습니다.