IT

C 헤더 파일을 작성하려면 어떻게 해야 합니까?

itgroup 2022. 10. 28. 20:41
반응형

C 헤더 파일을 작성하려면 어떻게 해야 합니까?

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

  1. 즐겨찾는 텍스트 편집기를 엽니다.
  2. anything.h라는 이름의 새 파일을 만듭니다.
  3. 기능 프로토타입을 넣습니다.

다 했어요.

예에 관계없이.h

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

주의: include guards (프리프로세서명령어)는 luke에 의해 추가되었습니다.같은 헤더 파일을 같은 컴파일에 두 번 포함시키지 않도록 합니다.또 다른 가능성(댓글에도 언급됨)은 다음을 추가하는 것입니다.#pragma once단, 모든 컴파일러에서 지원되는 것은 아닙니다.

예에 관계없이.c

#include "whatever.h"

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

그리고 "뭐든지"를 포함할 수 있습니다.h"를 다른 .c 파일로 변환하고, 그 파일을 quoty.c의 객체 파일과 링크합니다.

다음과 같이 합니다.

샘플.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파일, 각.cfile은 해당 함수의 복사본을 가져와 해당 기능의 기호를 만듭니다.링커는 중복된 기호에 대해 불평할 것입니다.

기술적으로는 작성 가능합니다.static여러 개의 헤더 파일에 포함하기 위한 함수.c이 작업은 일반적으로 수행되지 않습니다. 왜냐하면 이것은 코드가 발견된 규칙에서 벗어나기 때문입니다..c파일 및 선언은 에 있습니다..h파일을 표시합니다.

"C/C++: 헤더 파일의 정적 함수"의 설명을 참조하십시오.그 의미는 무엇입니까?자세한 것은, 을 참조해 주세요.

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

반응형