[Rookiss C++] 파일 분할 관리

황교선·2023년 3월 26일
0

cpp

목록 보기
14/19

선언부와 구현부의 분리

두 파일을 만들어야하고 파일의 이름은 같아야함

  • 파일이름1.h
    #pragma once // Test1.h를 다른곳에서 여러번 include하여 중복되어도 하나 있는 것처럼 동작
    
    void Test1();
    void Test2();
  • 파일이름1.cpp
    #include "파일이름1.h" // 선언부가 들어있는 파일
    
    // void Test1(); // include 헤더파일을 하면 선언부가 필요 없음
    // void Test2();
    
    void Test1()
    {
        // 문장들
    }
    
    void Test2()
    {
        // 문장들
    }

이제 이 Test1, Test2 함수를 main 함수에서 호출하고 싶다면 우리가 cout, cin 을 사용하기 위해 iostream을 include 하는 것처럼 파일이름1.h 를 include 해야함

#include "Test1.h"

int main()
{
    Test1();
    Test2();
}

ifndef

헤더파일에서 pragma once를 통하여 다른 파일에서 중복 선언되는 것을 막았는데 다른 방법이 있다.

#ifndef _TEST1_H_ // _TEST1_H_가 정의되어 있지 않으면
#define _TEST1_H_ // 정의
// 영역 내에서 쓸 코드 기입

struct StatInfo
{
    int hp, attack, defence;
}

void Test1();
void Test2();

// 영역 내에서 쓸 코드 종료
#endif // ifndef 영역 종료
  • pragma once를 사용하면 더 빠르긴하지만 컴파일러에서 꼬이는 경우가 있음
profile
성장과 성공, 그 사이 어딘가

0개의 댓글