77.5 main 함수 작성하기

마지막으로 main 함수가 들어갈 main.c 파일입니다. 다음 내용을 프로젝트 디렉터리에 main.c로 저장하세요.

examplecalc/examplecalc/main.c

#include "calc.h"      // add, sub 함수가 선언된 헤더 파일. calcdata.h 헤더 파일을 포함하고 있음
#include "print.h"     // print 함수가 선언된 헤더 파일. calcdata.h 헤더 파일을 포함하고 있음

int main()
{
    CALC_DATA data1;
    data1.operand1 = 10;
    data1.operand2 = 20;

    add(&data1);      // 덧셈 실행
    print(&data1);    // 10 + 20 = 30

    CALC_DATA data2;
    data2.operand1 = 40;
    data2.operand2 = 15;

    sub(&data2);      // 뺄셈 실행
    print(&data2);    // 40 - 15 = 25

    return 0;
}

실행 결과

10 + 20 = 30
40 - 15 = 25

main.c 파일에서는 지금까지 만든 구조체와 함수를 사용하면 됩니다. add, sub 함수를 사용하기 위해 calc.h 헤더 파일을 포함했고, print 함수를 사용하기 위해 print.h 헤더 파일을 포함했습니다. 여기서 CALC_DATA 구조체를 사용하기 위해 calcdata.h 헤더 파일을 포함해야 하는데 calc.h, print.h에서 이미 포함하고 있으므로 calcdata.h 헤더 파일은 따로 포함하지 않았습니다.

최종 헤더 파일 포함 관계는 다음과 같습니다.

그림 77‑3 헤더 파일 포함 관계

헤더 파일과 소스 파일을 모두 작성하고 프로젝트에 추가했을 때의 모양은 다음과 같습니다.

그림 77‑4 examplecalc 프로젝트

지금까지 여러 소스 파일을 사용하는 방법을 배웠습니다. C 언어를 처음 배울 때는 소스 파일 하나로도 충분하지만, 프로그램의 기능이 조금만 커지면 소스 파일을 여러 개 사용해야 합니다. 특히 실무에서는 소스 파일을 수십, 수백 개 사용하므로 프로젝트 구성 방법을 익혀두는 것이 좋습니다.

참고 | GCC에서 여러 소스 파일 컴파일하기

GCC에서 여러 소스 파일을 컴파일하려면 gcc 뒤에 .c 파일을 나열하고 -o 옵션에 실행 파일 이름을 지정하면 됩니다.

$ gcc calc.c print.c main.c -o examplecalc
$ ./examplecalc