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