한국   대만   중국   일본 
헤더 파일 - 위키百科, 우리 모두의 百科事典 本文으로 移動

헤더 파일

위키百科, 우리 모두의 百科事典.

컴퓨터 프로그래밍 에서, 特히 C C++ 프로그래밍 言語에서, 헤더 파일 (header file) 또는 人클루드 파일 (include file)은 컴파일러 에 依해 다른 소스 파일에 自動으로 包含된 소스 코드 파일 이다. 一般的으로 헤더 파일들은 다른 소스 파일 속의 첫 部分에 包含된다.

C와 C++ 프로그래밍 言語에서, 標準 라이브러리 函數는 傳統的으로 헤더 파일 안에서 宣言되어 있다. C 標準 라이브러리 C++ 標準 라이브러리 에 많은 函數들이 存在한다. 函數들은 使用者가 API 水準에서 알아야 한다. 따라서 開發 道具를 만드는 立場에서, 函數 自體를 設計하고 코딩을 한 側에서 提供해야 한다. 라이브러리 오브젝트 코드는 파일로 存在하고 헤더 파일에 函數나 變數의 兄이 宣言되어 있으므로 使用者 側에서 붙여 使用하면 된다. 使用者 側에서 使用한 라이브러리는 라이브러리 파일의 코드를 링커 가 應用 프로그램에 붙여 全體 實行 코드가 完成된다. 結局 헤더 파일의 兄을 使用하여 라이브러리 使用者의 人클루드에 依해 函數 呼出이 方式이 決定된다.

C/C++ 헤더 파일 使用 예 [ 編輯 ]

代表的으로 C言語에서 많이 使用하는 printf函數는 stdio.h 標準 라이브러리에 存在한다.

#include
 <stdio.h>


int
 main
(
int
 argc
,
 char
 *
argv
[])

{

    printf
(
"出力 函數 使用 예
\n
"
);


    return
 0
;

}

여기서 實時間 라이브러리 函數 printf 코드는 라이브러리 파일에 存在하고, stdio.h 헤더 파일에 兄이 宣言 되어 있다.

헤더 파일의 가장 一般的인 形態는 다음과 같은 例에서 볼 수 있다.

헤더 파일 實時間 函數 메인 函數
// 파일: MyFunc.h


#ifndef _MYFUNC_H

#define _MYFUNC_H


// 函數의 兄을 宣言하여 呼出 時,

// 引受의 形態를 알린다.

//

int
 add
(
int
 a
,
 int
 b
);


#endif

// 파일: MyFunc.c


#include
 "MyFunc.h"


int
 add
(
int
 a
,
 int
 b
)

{

    int
 c
;

    c
 =
 a
+
b
;

    return
 c
;

}

// 파일: main.c


#include
 <stdio.h>

#include
 "MyFunc.h"


int
 main
(
int
 argc
,
 char
 *
argv
[])

{

    int
 c
 =
 add
(
10
,
20
);

    printf
(
"10 + 20 = %d
\n
"
,
 c
);

    return
 0
;

}

헤더파일에서는 使用하는 코드는 兄을 알리는 形態가 가장 一般的이다. 프로세서가 實行될 때 變數 空間을 잡는 形態는 重複에 依해 問題가 될 수도 있다. 헤더파일의 使用은 여러 파일에서 重複으로 因클루드로 붙여서 使用하는 것이 一般的이기 때문이다.

兄을 알리는 C/C++ 코드 :

  • #define
  • enum
  • struct 헤더 部
  • 클래스 宣言 部
  • 函數 兄

等이 代表的이다.

따라서 이것들은 헤더 파일에 넣는 것이 一般的이다. 헤더 파일에 變數의 宣言은 C/C++ 言語 立場에서는 問題가 없지만 프로그래밍 코드가 複雜해 지면 混沌의 念慮가 있으므로 습관된 헤더 파일 使用 方法 熟知가 必要하다.

適切하지 못한 헤더 파일 使用 예 :

헤더 파일 實時間 函數 메인 函數
// 파일: MyFunc.h


#ifndef _MYFUNC_H

#define _MYFUNC_H


char
 gbuff
[
256
];


char
 *
addString
(
char
 *
pa
,
 char
 *
pb
);


#endif

// 파일: MyFunc.c


#include
 <string.h>

#include
 "MyFunc.h"


char
 *
addString
(
char
 *
pa
,
 char
 *
pb
)

{

    strcpy
(
gbuff
,
 pa
);

    strcat
(
gbuff
,
 pb
);

    return
 gbuff
;

}

// 파일: main.c


#include
 <stdio.h>

#include
 "MyFunc.h"


int
 main
(
int
 argc
,
 char
 *
argv
[])

{

    char
 *
pstr
 =
 addString
(
"첫 文字"
,
 "다음"
);

    printf
(
"%s
\n
"
,
 pstr
 );


    return
 0
;

}

같이 보기 [ 編輯 ]

外部 링크 [ 編輯 ]