ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1.10~ 1.11 함수파일쪼개기, 헤더파일 만들기
    C++일기 2021. 5. 2. 22:33

    제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은  목차번호를 사용하고 있으니 참고하세요!

     


     

    매우 긴 코드. 매우많은 함수가 있는 상황에서 main함수는 저 뒤에 있어 보이지도 않고 함수들만 보일 때, 함수를 저멀리 뒤로 보내고 main함수를 앞으로 불러오는 대신에 선언과 정의를 구분하여 코드를 정리할 수 있다.

    1.10 선언과 정의 분리

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #include <iostream>
     
    using namespace std;
     
    //forward declaration 
    int add(int a, int b);
    int multiply(int a, int b);
     
    int main()
    {
        cout << add(12<< endl;
        cout << multiply(15<< endl;
     
        return 0;
    }
     
    //definition
    int add(int a, int b)
    {
        return a + b;
    }
     
    //definition
    int multiply(int a, int b)
    {
        return a * b;
    }
    cs

    1. main함수를 제일 위로 올린다.

    이 때 실행하면, 오류가 발생하는데, main함수에서 add함수를 찾을 수 없기 때문. 컴파일러는 위에서부터 차례로 읽기시작한다. main함수보다 밑에 있는 함수는 없는 것으로 인식하게 된다.

    2. 이를 고려해 함수의 입출력 형태(prototype)만을 가져와 위에서 이러이러한 함수가 있음을 선언해준다.

     

    그럼에도! 코드가 복잡해지고 길어졌을 때 파일을 쪼개야할 때가 있다.

     

    # 파일쪼개기

    프로젝트 하위 소스파일에 함수를 저장할 cpp파일을 생성
    왼) main.cpp 오)add함수.cpp

    이렇게 함수만을 따로 떼어내어 소스파일을 만들고 main함수 위에 함수선언을 통해서 다른파일의 함수를 활용할 수 있다.

     

    사실, 이 방법 보다는 헤더파일을 만들어 #include하는 경우가 더 많다.

     

     

     

     

    1.11 헤더파일 만들기

    상황 : 복잡한 코드, 함수의 내용이 매우 길어 함수를 메인파일에 넣을 경우 가독성이 현저히 떨어는 상황

    해결방법 : 비슷한 기능의 함수들을 따로 모아 하나의 (헤더)파일로서 빼두고 메인파일에서는 헤더파일을 이용해 함수들을 사용한다. 

     

    # 방법

    함수를 담은 cpp파일을 추가로 만들고

    선언문들을 담은 header파일을 만든다.

    main.cpp파일로 돌아와서는 간단히 #include "add.h"을 추가하면 본문에서 함수이름을 불러와 쓸 수 있다.

    헤더파일 하위파일로 add.h를 추가. 이곳에 main함수의 함수선언을 가져올 것이다.
    main.cpp에서 함수선언을 cut

     

    add.h(헤더파일)에 함수선언문 paste
    main.cpp에서 #include "add.h"추가

    현업에서는 가장먼저 함수몸체를 담은 cpp파일과 선언문을 담은 header파일을 만들어 놓고 시작한다고 한다.

     

     

     

     

     

     

     


     

    출처)

    홍정모의 따배씨++

    www.youtube.com/playlist?list=PLNfg4W25Tapw5Yx4yuExHNybBIUk68aNzwww.youtube.com/watch?v=ctaMu3XplPI

     

     

    좋은 강의에 너무나 감사하다.

    이전에는 그냥 무작정 따라썼던 코드들을 한줄한줄 이해하며 공부할 수 있다.

    언젠가 어느 언어든 자신감이 있는 코드마스터가 될 것이다.

     

    데이터가 인간을 대신해 일을 하게하고

    데이터를 제어해 로봇을 제어하고 싶다.

     

    '아앙의 전설'에서 주인공은 물/불/흙/공기 원소를 자유자재로 다룬다.

    수많은 데이터가 넘실대는 현대에서는 데이터를 자유자재로 다루는 프로그래머.

    실력있는 프로그래머가 되기 위해서는 코드 한줄이 내부적으로 어떻게 작동되는지를 이해해야한다.

    728x90
    반응형

    댓글 0

Designed by Tistory.