programing

C 헤더 파일을 어떻게 만들 수 있습니까?

nasanasas 2020. 11. 30. 17:53
반응형

C 헤더 파일을 어떻게 만들 수 있습니까?


내 C 프로그램 중 하나에 #include 할 수있는 헤더 파일에 함수 모음을 만들 수 있기를 원합니다.


  1. 좋아하는 텍스트 편집기 열기
  2. whatever.h라는 새 파일을 만듭니다.
  3. 함수 프로토 타입을 넣으십시오.

끝난.

예 whatever.h

#ifndef WHATEVER_H_INCLUDED
#define WHATEVER_H_INCLUDED
int f(int a);
#endif

참고 : luke 덕분에 추가 된 가드 (전 처리기 명령)를 포함합니다. 동일한 컴파일에 동일한 헤더 파일을 두 번 포함하지 않습니다. 또 다른 가능성 (주석에도 언급 됨)은 추가하는 #pragma once것이지만 모든 컴파일러에서 지원된다는 보장은 없습니다.

예 whatever.c

#include "whatever.h"

int f(int a) { return a + 1; }

그런 다음 "whatever.h"를 다른 .c 파일에 포함시키고이를 whatever.c의 개체 파일과 연결할 수 있습니다.

이렇게 :

sample.c

#include "whatever.h"

int main(int argc, char **argv)
{
    printf("%d\n", f(2)); /* prints 3 */
    return 0;
}

컴파일하려면 (GCC를 사용하는 경우) :

$ gcc -c whatever.c -o whatever.o
$ gcc -c sample.c -o sample.o

파일을 링크하여 실행 파일을 만들려면 :

$ gcc sample.o whatever.o -o sample

샘플을 테스트 할 수 있습니다.

$ ./sample
3
$

헤더 파일은 컴파일 전에 전처리기에 의해 컴파일 단위로 삽입되기 때문에 유효한 C 코드를 포함 할 수 있습니다.

헤더 파일에 함수가 포함되어 있고 여러 .c파일에 포함 된 경우 .c파일은 해당 함수의 복사본을 가져 와서 기호를 만듭니다. 링커는 중복 기호에 대해 불평합니다.

기술적 static으로 여러 .c파일 에 포함하기 위해 헤더 파일에 함수 를 만드는 것이 가능 합니다. 이것은 일반적으로 코드가 .c파일 에서 발견 되고 선언이 파일 에서 발견된다는 규칙을 위반하기 때문에 수행되지 않습니다 .h.

C / C ++ : 헤더 파일의 정적 함수에 대한 설명을 참조하십시오. 무슨 의미입니까? 자세한 설명은.

참고 URL : https://stackoverflow.com/questions/2831361/how-can-i-create-c-header-files

반응형