C++의 여러 코드 파일

Muhammad Husnain 2023년10월12일
C++의 여러 코드 파일

이 튜토리얼은 단일 C++ 프로그램에서 여러 파일을 사용하는 방법에 관한 것입니다. 단일 파일에 모든 코드를 작성하는 것은 크고 긴 프로젝트에서는 번거롭기 때문에 프로젝트에서 파일을 분리하고 관리하기 쉽고 리팩터링하기 쉽게 만드는 방법을 배웁니다.

프로그래밍 경력의 이 시점까지 단일 파일에 모든 코드를 작성했습니다. 기본 기능, 프로토타입, 시스템 기능, 추가 기능 등 모든 것이 있었습니다!

이것은 (대형) 프로그래밍 프로젝트를 구성하는 가장 좋은 방법이 아닙니다. 프로그래밍 프로젝트를 여러 파일로 분할하여 보다 체계적이고 안전하며 이식 가능하고 수정 가능하며 빠르게 재컴파일하는 방법을 배웁니다.

여기에는 여러 가지 이유가 있지만 시간과 정보 과부하 때문에 자세히 설명할 수 없습니다.

C++ 프로그램에서 여러 코드 파일 사용

하나의 파일에 모든 것이 포함된 예제 파일로 시작한 다음 해당 파일을 분리합니다.

예제 코드:

#include <iostream>
using namespace std;

void helloFunc();
int main() {
  helloFunc();
  return 0;
}
void helloFunc() { cout << "Hello World" << endl; }

이 코드 스니펫에서 helloFunc() 함수를 먼저 선언한 다음 프로그램의 후반 단계에서 정의했음을 알 수 있습니다. 그런 다음 main 함수를 작성했습니다.

이것은 세 개의 파일에서 수행할 수 있습니다. 헤더 파일에서 함수를 선언하고 cpp 파일에서 정의합니다.

예제 코드(hello.h):

#include <iostream>
using namespace std;

void helloFunc();

예제 코드(hello.cpp):

#include "hello.h"
void helloFunc() { cout << "Hello World" << endl; }

예제 코드(main.cpp):

#include "hello.h"

int main() {
  helloFunc();
  return 0;
}

헤더 파일 hello.h부터 시작하겠습니다. 헤더 파일에는 함수 정의, struct 또는 class 정의 또는 상수 정의와 같은 모든 정의가 포함됩니다.

.h 확장자는 컴파일러에게 이 파일이 컴파일되지 않음을 알립니다. 텍스트 파일과 같으며 누구나 읽을 수 있습니다. 이는 헤더 파일이 문서화 파일임을 의미합니다.

어떤 프로그래머가 미래에 일부 기능을 사용하고 싶다면 기능의 프로토타입만 확인하면 되고 기능 정의에 대해 자세히 알아볼 필요는 없습니다. 마지막으로 템플릿 코드도 헤더 파일에 있어야 합니다.

이제 헤더 파일에 선언된 함수 정의를 포함하는 cpp 파일이 나옵니다. CPP 파일은 컴파일러에게 이 파일이 컴파일되고 바이너리 파일로 변환될 것임을 알립니다.

귀하의 코드 무결성은 보호되며 귀하의 허가 없이는 누구도 수정할 수 없습니다. 즉, 이러한 코드 분리는 코드 파일의 보안도 보장합니다.

이 기술의 또 다른 이유는 이식성입니다. 예를 들어 나중에 다른 많은 프로그램에서 사용할 수 있는 이진 검색 코드를 작성했습니다. 기능에 대한 이러한 별도의 파일이 있으면 다른 프로젝트에서 이러한 기능을 쉽게 사용할 수 있습니다.

마침내 main 파일에는 main 기능만 포함되고 맨 위에 헤더 파일이 포함됩니다. 이 파일에는 모든 함수만 호출하는 main 함수만 포함되어 있습니다.

Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn

관련 문장 - C++ File