77.3 덧셈, 뺄셈 함수 작성하기

이번에는 calc.h 헤더 파일에 덧셈 함수와 뺄셈 함수를 선언하겠습니다. 다음 내용을 프로젝트 디렉터리에 calc.h로 저장하세요.

examplecalc/examplecalc/calc.h

#include "calcdata.h"    // CALC_DATA 구조체를 사용하기 위해 calcdata.h 헤더 파일 포함

void add(CALC_DATA *data);    // 덧셈 함수 선언
void sub(CALC_DATA *data);    // 뺄셈 함수 선언

헤더 파일은 보통 함수가 있다는 사실을 알려주는 역할만 하고 함수를 구현하지 않습니다. 따라서 add, sub 함수 선언만 넣습니다. 또한, add, sub 함수에서 CALC_DATA를 매개변수로 사용하므로 #includecalcdata.h 헤더 파일을 포함합니다.

이제 add, sub 함수를 구현(정의)하겠습니다. 다음 내용을 프로젝트 디렉터리에 calc.c로 저장하세요(프로젝트에 소스 파일을 추가하는 방법은 '3.2 프로젝트에 C 언어 소스 파일 추가하기' 참조).

examplecalc/examplecalc/calc.c

#include "calc.h"    // CALC_DATA 구조체를 사용하기 위해 calc.h 헤더 파일 포함
                     // calc.h가 calcdata.h를 포함하고 있음

void add(CALC_DATA *data)    // 덧셈 함수 정의
{
    data->operator = '+';    // 연산자 문자 + 저장
    
    // 계산할 값 두 개를 더해서 결과 저장
    data->result = data->operand1 + data->operand2;
}

void sub(CALC_DATA *data)    // 뺄셈 함수 정의
{
    data->operator = '-';    // 연산자 문자 - 저장

    // 계산할 값 두 개의 차를 구해서 결과 저장
    data->result = data->operand1 - data->operand2;
}

덧셈 함수와 뺄셈 함수를 구현합니다. 여기서는 CALC_DATA 구조체의 operator 멤버에 연산자 문자를 저장하고, result 멤버에 계산 결과를 저장합니다. 또한, 함수의 매개변수로 CALC_DATA 구조체를 사용하고 있으므로 헤더 파일을 포함해야 하는데 여기서는 calc.h를 포함했습니다. 왜냐하면 calc.hcalcdata.h를 포함하고 있으므로 calc.h만 포함해도 됩니다(calcdata.h를 직접 포함해도 되며 특별히 정해진 규칙은 없습니다. 프로그램의 구조에 따라서 달라질 수 있습니다).