[C++]코딩연습장

C++ [분할컴파일]

KAU 2021. 2. 22. 17:37


 

#include <iostream>

using namespace std;

struct MyStruct
{
	string name;
	int age;
};

void display(MyStruct&);

int main() {
	MyStruct PandaCoding = {
		"Panda",
		26,
	};

	display(PandaCoding);
	return 0;
}

void display(MyStruct& a) {
	cout << "이름 : " << a.name << endl;
	cout << "나이 : " << a.age << endl;

}


분할 컴파일이란 위의 세부분을 나눠서 컴파일 하는 방법이다.

#include <iostream>

using namespace std;

struct MyStruct
{
	string name;
	int age;
};

void display(MyStruct&);

위의 코드를 떼어내고 헤더 파일에 struct.h를 추가시켜서 

include 시켜도 실행이 될까?

 

정상 실행 가능


diplay 부분을 떼어 줬을 때
정상 실행된다.


코드를 분할하면 코드를 재활용 가능하다.

볼륨이 크면 클 수록 관리하기 편하다.

struct.h를 두번 포함시키게 된다.

헤더 파일을 여러 파일에 포함시킬 때 

반드시 단 한 번만 포함시켜야 한다.

 

이러한 불상사를 막기 위해서 ifndef를 사용한다.

#ifndef STRUCT
#define STRUCT
#include <iostream>

using namespace std;

struct MyStruct
{
    string name;
    int age;
};

void dispaly(MyStruct&);
#endif

#ifndef에서 #endif 까지를 '기호 상수화' 시킴으로써 

컴파일러가 나중에 중복해서 호출된 것들은 무시하게 하여 

안전하게 코딩할 수 있다.

'[C++]코딩연습장' 카테고리의 다른 글

C++ [클래스]  (0) 2021.02.22
C++ [참조 변수] [함수 템플릿]  (0) 2021.02.21
C++ [Function]  (0) 2021.02.21
C++ [포인터와 메모리 해제] [포인터 연산] [동적 구조체]  (0) 2021.02.21
C++ [구조체]  (0) 2021.02.21