안녕하세요 넬다이입니다.
오늘은 분할 컴파일에 대해서 알아볼까 합니다.
코딩을 하다 보면은 줄 수가 정말 몇천 자까지 넘어가는 경우도 있는데요 이것을 적절하게 파일을 나눠서 가독성을 높여주며 관리의 용의 하게 만들어 줄 수 있는 장점을 가지고 있으며 어렵지 않은 내용이니 다들 잘 따라오실 것이라고 믿습니다.
분할 컴파일
한 파일 안에 모든 코드를 작성해도 되지만 프로젝트가 커지게 되면 가독성이 떨어지게 되는데요 우리는 이것을 해결하기 위해서 분할 컴파일을 사용하게 됩니다.
분할 컴파일을 하게 되면은 각각 기능의 맞게 함수화를 하여 다른 파일에 모아두는데요 예를 들어서 Math라는 파일 안에는 계산을 위한 함수들만 넣어놓게 된다면은 제가 Math관련 함수를 찾아야 한다면은 Math파일만 찾으면 되기 때문에 가독성이 높습니다. 또한 Math파일 안에 모여있기 때문에 다른 프로젝트에서도 옮겨서 사용하면 되기 때문에 재사용성 또한 높습니다.
자 그러면 분할 컴파일을 이용하여 코드를 짜 보도록 하겠습니다.
자 그럼 일단 Function.h와 Function.cpp라는 파일을 만들어 보겠습니다.
첫 번째로 비주얼 스튜디오에서
프로젝트 -> 클래스 추가 -> 클래스 이름(Function이라 적어보자) -> 확인
이렇게 확인을 누르게 되면은
이렇게 Function이 만들어지는 것을 볼 수 있는데요 일단 Function.h에 들어가셔서 코드를 전부 지워주시기 바랍니다.
클래스는 다음에 배워볼 예정입니다.
Function.h는
#pragma once
이렇게만 있게 해 주시고요 Function.cpp는
#include "Function.h"
이것만 있게 코딩을 해주시기 바랍니다.
자 그러면 Function.cpp는 Function.h와 연결을 위해서 Include를 해주는 것입니다.
이렇게 되면은 일단 Function의 기본 골자가 완성되었습니다.
보통 헤더 파일에는 함수의 원형을 넣게 되고 Cpp파일에는 함수의 구현을 하게 됩니다.
그렇다면 이제 Function안에 구현을 시작해볼 텐데요 이번에는 간단하게 Render함수를 만들고 그 안에서 Render함수가 호출됐는지만 확인할 수 있는 코드를 만들어 보도록 하겠습니다.
일단 Function.h에 함수 Render를 만들어 보도록 하겠습니다
#pragma once
//함수의 원형을 만드는 부분입니다.
void Render(void);
또한 Function.cpp에는 함수의 정의를 진행해보겠습니다.
#include <iostream>
//.h파일도 포함 해 주겠습니다.
#include "Function.h"
using namespace std;
//여기서는 구현을 하게 됩니다.
void Render(void)
{
cout << "Render Call" << endl;
}
자 이렇게 되면은 Function안에 있는 Render함수가 구현이 완료되었습니다
그렇다면 이제 Render함수를 호출하게 되면은 Render Call이라는 문구가 출력이 될 것입니다.
그렇다면 이제 main을 만들어 보도록 하겠습니다.
#include "Function.h"
void main()
{
Render();
}
자 이렇게 해주시고 Render라는 함수를 호출하게 되면은 Function.h와 Function.cpp에 있는 함수를 호출하는 것을 볼 수 있습니다. 저렇게 실행을 하게 되면은 Render Call이라는 콘솔 문구가 나오게 되는데요 이를 통해서 특정 함수들을 모아놓고 사용하는 법을 알 수 있었습니다.
자 오늘 내용은 별로 어려운 것도 없고 별로 내용도 없지만 프로그램을 하시는 분이라면은 기본으로 알아두셔야 하는데요. 프로젝트가 비대해지면 비대해질수록 좋은 방법이니깐 꼭 익혀두시길 바랍니다. 그리고 복습으로 다른 h와 cpp도 만들어보시고 각각의 맞는 함수를 구현을 하셔서 많이 사용해보심이 이해하시기 편하실 것이라고 생각합니다.
자 그럼 이렇게 이번 정리도 끝내보겠습니다 감사합니다.
[개발/C&C++] - (C/C++ 속성 정리) 22일 차 : 함수포인터를 이용한 사칙연산 계산기 만들기
[개발/C&C++] - (C/C++ 속성 정리) 21일 차 : 함수포인터
[개발/C&C++] - (C/C++ 속성 정리) 20일 차 : 레퍼런스 변수의 사용
[개발/C&C++] - (C/C++ 속성 정리) 19일 차 : 재귀 함수 및 2차원 배열
'개발 > C&C++' 카테고리의 다른 글
(C/C++ 속성 정리) 27일 차 : 깊은 복사와 얕은 복사의 이해 (0) | 2021.01.21 |
---|---|
(C/C++ 속성 정리) 26일 차 : Static이란? 및 특징 (0) | 2020.07.22 |
(C/C++ 속성 정리) 25일 차 : Const 한정자란? (0) | 2020.07.21 |
(C/C++ 속성 정리) 24일 차 : 객체지향 프로그래밍이란? (0) | 2020.07.20 |
(C/C++ 속성 정리) 22일 차 : 함수포인터를 이용한 사칙연산 계산기 만들기 (0) | 2020.07.13 |
(C/C++ 속성 정리) 21일 차 : 함수포인터 (0) | 2020.07.12 |
(C/C++ 속성 정리) 20일 차 : 레퍼런스 변수의 사용 (0) | 2020.07.11 |
(C/C++ 속성 정리) 19일 차 : 재귀 함수 및 2차원 배열 (3) | 2020.07.10 |