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를 매개변수로 사용하므로 #include로 calcdata.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.h가 calcdata.h를 포함하고 있으므로 calc.h만 포함해도 됩니다(calcdata.h를 직접 포함해도 되며 특별히 정해진 규칙은 없습니다. 프로그램의 구조에 따라서 달라질 수 있습니다).