함수(Function)(2)


이번에는 헤더파일과 분할컴파일에 대해 알아보겠습니다. 


- 헤더파일

 우선 헤더파일은 시스템에 설치된 시스템 라이브러리 헤더파일이 있고, 함수처럼 직접 만들어 사용할 수 있습니다. 아래 위치는 헤더파일이 있는 위치입니다. 개발환경에 따라 다를 수 있습니다. 

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include

 아래 그림처럼 include 폴더에는 수 많은 헤더파일이 있습니다.

수 많은 헤더파일 중에 제가 사용했었던 stdio.h를 visual studio로 열어 봤습니다. 아래 그림을 보면 stdio.h의 헤더파일에 printf 함수가 선언된걸 확인 할 수 있습니다. 이처럼 헤더파일을 직접 만들어서 직접 구현한 함수를 추가 해서 인클루드할 수 있습니다.


- 분할 컴파일

 분할 컴파일은 분리 컴파일 이라고도 하며, 하나의 프로그램을 여러 조각으로 나눠서 작성·관리 하는 기능입니다. 프로그램의 크기가 커지거나 같은 기능을 반복적으로 사용하는 경우  프로그램을 기능별로 나누면 관리 및 재활용이 용이합니다. 분할 컴파일은 컴파일 시간이 줄어들고, 여럿이서 동시에 프로그램 개발할 때 유용합니다.


아래 코드는 함수(1)게시글에서 정의 한 함수를 분할 컴파일한 코드입니다.

------------------------------------------------------------------------------------------

// cal.h 

// 헤더파일에는 함수의 정의만 해줍니다.

int plus(int a, int b); 

int multi(int a, int b);

------------------------------------------------------------------------------------------

// cal.c

#include "cal.h" 

// 동일한 이름의 c파일을 생성해서 헤더파일을 인클루드하고 함수를 구현합니다.

// 직접 만든 헤더파일은 <>가아닌 ""를 사용합니다.

int plus(int a, int b)

{

return a + b;

}


int multi(int a, int b)

{

return a * b;

}

------------------------------------------------------------------------------------------

// main.c
#include <stdio.h>
#pragma warning(disable:4996)
#include "cal.h" // cal.h헤더파일을 인클루드하면 cal.h헤더파일에 정의한 함수를 사용할 수 있습니다.

int main()
{
int a, b, result;
printf("a,b를 입력하시면 합과 곱이 출력됩니다. \n");
printf("a를 입력하세요 : ");
scanf("%d", &a);
printf("b를 입력하세요 : ");
scanf("%d", &b);

result = plus(a, b);
printf("%d + %d = %d \n", a, b, result);
result = multi(a, b);
printf("%d * %d = %d \n", a, b, result);

return 0;
}

------------------------------------------------------------------------------------------

분할 컴파일 결과 함수(1)게시글과 결과가 동일합니다.


* 출처 : 한국기술교육대학교 온라인평생교육원 C 프로그래밍_2 

          스타일 C프로그래밍 저.김종훈,김종진 출.WellBook




'언어 > C' 카테고리의 다른 글

[C] 디버깅  (0) 2016.12.21
[C] 매개변수 전달 방식  (0) 2016.12.20
[C] 함수(1)  (0) 2016.12.20
[C] 기타 제어문  (0) 2016.12.19
[C] 반복문  (0) 2016.12.18

+ Recent posts