heenam
chapter27 파일의 분할과 헤더파일의 디자인 본문
파일의 분할
파일을 그냥 둬도 될까요?
한 파일에 모든 것을 담는 것보다 여러개의 파일을 만들어서 서로 연관 있는 함수와 변수들을 구분해서 담는게 좋다.
외부에 선언 및 정의되었다고 컴파일러에게 알려줘야 합니다.
파일을 분할해서 컴파일 하기 위해서는 컴파일러에게 다음과 같은 내용의 메시지를 전달해야 한다.
extern int num // int형 변수 num이 외부에 선언되어 있다.
이처럼 외부에 선언되었음을 컴파일러에게 알리는 extern을 사용한다. 함수에서도 사용 가능하다.
extern void Increment(void) // void Increment(void) 함수가 외부에 정의되어 있다.
구체적으로 어느 파일에 선언 및 정의되어있는지 까지는 알리지 않아도 된다.
다른 파일에서 접근을 못하게 하고 싶다면 staic!
static int num = 0; // num는 외부 파일에서의 접근을 허용하지 않는다. 함수에서도 사용 가능하다.
ststic void MinCut(void) // 외부 파일에서 호출 불가능한 함수
헤더파일의 디자인과 활용
#include 지시자의 의미를 알면 헤어파일을 완전히 이해할 수 있습니다.
#include "header1.h" // 이 문장 위치에다가 header1.h에 저장된 내용을 가져다 놓으세요
헤더파일을 include 하는 두 가지 방법
#include <헤더파일 이름.h> // C의 표전에서 정의하고 있는, 기본적으로 제공되는 헤더파일 stdio.h나 string.h같은
#include "헤더파일 이름" // 프로그래머가 정의 하는 헤더파일을 포함시킬 때 사용하는 방식
절대 경로를 명시해서 헤더파일을 지정할 수 있다.
#include "C:\CPower\Myproject\header.h // 절대경로 지정
프로그램 개발에서는 특별한 이유가 없으면 절대경로를 사용하지 않는다.
상대경로의 지정 방법
#include "..\MyHeader\header2.h"
// 두 단계 상위 디렉터리의 하위 디렉터리인 MyHeader디렉터리에 존자하는 header2.h를 포함하라.
상대경로를 이용하는 습관을 들어야 한다.
헤더파일에 무엇을 담으면 좋겠습니까?
선언을 헤더파일에 모아두고 필요할 때마다 헤더파일을 포함시키는 방법을 선택한다.
'[Programming Language] > C' 카테고리의 다른 글
Call by value와 Call by reference 차이 (0) | 2020.06.30 |
---|---|
Chapter26 매크로와 선행 처리하기 (0) | 2020.05.01 |
Chapter 25 메모리 관리와 메모리의 동적 할당 (0) | 2020.04.23 |
Chapter 24 파일 입출력 (0) | 2020.04.17 |
chapter 23 구조체와 사용자의 정의 자료형2 (0) | 2020.04.10 |