C 언어 헤더 파일 작성하는 방법
C 언어에서 헤더 파일(Header file)은 함수, 매크로, 구조체 등의 원형(prototype)과 상수, 전역 변수 등의 정의를 담고 있는 파일입니다. 헤더 파일은 각 파일에서 공유하고 사용할 수 있도록 작성됩니다.
C 언어에서 헤더 파일을 작성하는 방법은 다음과 같습니다:
헤더 파일 생성: 헤더 파일은 .h 확장자로 저장합니다. 예를 들어, myheader.h 같은 파일 이름으로 저장할 수 있습니다.
헤더 파일의 정의: 헤더 파일에는 원형(prototype)과 정의를 포함하는 코드를 작성합니다. 이 정의는 헤더 파일에서만 사용하고 공유할 수 있는 것들입니다.
#ifndef MYHEADER_H
#define MYHEADER_H
#define MAX_LENGTH 100
int add(int a, int b);
#endif
- 헤더 파일의 사용: 정의된 헤더 파일을 사용하고자 하는 C 파일에서 #include 문을 사용하여 헤더 파일을 참조합니다.
// main.c
#include <stdio.h>
#include "myheader.h"
int main(void) {
int result = add(1, 2);
printf("Result: %d\n", result);
return 0;
}
- 헤더 파일의 정의와 구현: 헤더 파일에서 정의한 함수 등의 구현을 별도의 C 파일에서 작성합니다. 예를 들어, myheader.h에서 정의한 add 함수의 구현은 myheader.c 파일에서 작성할 수 있습니다.
// myheader.c
#include "myheader.h"
int add(int a, int b) {
return a + b;
}
컴파일: 헤더 파일, C 파일, 구현 파일을 하나의 프로젝트로 컴파일하여 실행 파일을 생성합니다. 위의 과정을 수행하면 헤더 파일을 작성하고 사용할 수 있습니다. 헤더 파일을 작성하는 것은 프로그램 구조화와 재사용성을 높이는데 도움이 됩니다.
헤더 파일 구현하기
- 헤더 파일 작성 (header_calc.h)
먼저, 두 개의 정수를 매개변수로 받는 add, subtract, multiply, divide 함수의 원형을 선언하는 header_calc.h 헤더 파일을 작성합니다.
// header_calc.h
#ifndef CALC_H
#define CALC_H
int add(int a, int b); // 덧셈 함수
int subtract(int a, int b); // 뺄셈 함수
int multiply(int a, int b); // 곱셈 함수
int divide(int a, int b); // 나눗셈 함수
#endif
- 헤더 파일의 구현 (header_calc.c)
그 다음, header_calc.h 헤더 파일에서 선언한 함수들을 header_calc.c 파일에서 구현합니다.
// header_calc.c
#include "header_calc.h"
int add(int a, int b)
{
return a + b; // 덧셈 결과 반환
}
int subtract(int a, int b)
{
return a - b; // 뺄셈 결과 반환
}
int multiply(int a, int b)
{
return a * b; // 곱셈 결과 반환
}
int divide(int a, int b)
{
if (b != 0)
{
return a / b; // 나눗셈 결과 반환
} else
{
return 0; // 에러 케이스: 0으로 나누는 경우
}
}
- 헤더 파일의 사용 (header_main.c)
마지막으로, header_main.c 파일에서 header_calc.h 헤더 파일을 참조하고, 위에서 구현한 네 가지 함수를 사용하여 숫자 10과 5에 대해 연산을 수행한 결과를 출력하는 main 함수를 작성합니다.
// header_main.c
#include <stdio.h>
#include "header_calc.h"
int main(void)
{
int a = 10;
int b = 5;
printf("덧셈: %d\n", add(a, b));
printf("뺄셈: %d\n", subtract(a, b));
printf("곱셈: %d\n", multiply(a, b));
printf("나눗셈: %d\n", divide(a, b));
return 0;
}
덧셈: 15
뺄셈: 5
곱셈: 50
나눗셈: 2
위와 같이 헤더 파일의 선언, 구현, 그리고 사용을 정확하게 이해하고 작성할 수 있다면, 이 문제에 대한 이해는 충분하다고 볼 수 있습니다.