IT이야기

.c 및 .h 파일 확장자는 C에게 어떤 의미입니까?

cyworld 2022. 7. 12. 21:44
반응형

.c 및 .h 파일 확장자는 C에게 어떤 의미입니까?

제목에 다 있어요.초단순한 것 같은데어디서나 구문적인 걸 찾기가 너무 어려워요

CS50.net에서 복사한 두 개의 라이브러리 파일인데, 왜 두 개의 확장자가 다른지 궁금하네요.

.c : c 파일(일반적으로 실제 액션이 있는 경우)

.h : 헤더파일(프리프로세서에 포함)#include지시)함수 프로토타입, #define'd 물건, 전역 변수에 대한 외부 선언(오, 공포) 등 일반적으로 코드의 다른 부분과 공유되는 것으로 간주되는 내용이 포함됩니다.

기술적으로는 모든 것을 한 파일에 담을 수 있습니다.C 프로그램 전체가 100만 줄이야하지만 우리 인간은 무언가를 정리하는 경향이 있다.따라서 각각 특정 함수를 포함하는 서로 다른 C 파일을 만듭니다.아주 깔끔하네요.그러면 갑자기 특정 C 파일에 있는 선언이 다른 C 파일에도 존재해야 한다는 것을 알게 됩니다.그래서 당신은 그것들을 복제합니다.따라서 선언문을 추출하여 공통 파일(.h)에 저장하는 것이 가장 좋습니다.

예를 들어 cs50.h에는 함수의 "전송 선언"이라고 불리는 것이 있습니다.포워드 선언은 함수를 호출하는 방법(예를 들어 어떤 입력 파라미터)과 반환하는 방법을 컴파일러에 알려주는 빠른 방법입니다.그러면 적절한 체크를 실행할 수 있습니다(예를 들어 잘못된 파라미터 수로 함수를 호출하면 불평합니다).

또 다른 예.정규 표현 조회를 수행하는 함수를 포함하는 .c 파일을 쓴다고 가정합니다.함수에서 정규 표현식, 일치하는 문자열 및 대소문자를 구분하지 않는 비교가 필요한지 여부를 나타내는 파라미터를 받아들이도록 합니다.

따라서.c에 넣어야 합니다.

bool matches(string regexp, string s, int flags) { the code }

이제 다음 플래그를 전달한다고 가정합니다.

0: 검색에서 대소문자를 구분하는 경우

1: 검색에서 대소문자를 구분하지 않는 경우

새로운 플래그를 사용할 수 있도록 하고 싶기 때문에 부울을 넣지 않았습니다.숫자를 가지고 노는 것은 어렵기 때문에, 이러한 플래그의 유용한 이름을 정의합니다.

#define MATCH_CASE_SENSITIVE 0
#define MATCH_CASE_INSENSITIVE 1

이 정보는 .h에 들어갑니다.이러한 라벨을 사용하는 프로그램이 있는 경우 정보를 포함하지 않는 한 이 라벨을 알 수 없기 때문입니다.물론 .c에 넣을 수 있지만, 시간 낭비와 문제의 원인이 되는 .c 코드(whole!)를 포함해야 합니다.

의 확장자가 반드시 머리글 파일의 확장자여야 은 없습니다..h는 C로 해야 ..c이치노

E:\Temp> type my.interface
#ifndef MY_INTERFACE_INCLUDED
#define MYBUFFERSIZE 8
#define MY_INTERFACE_INCLUDED
#endif

E:\Temp> type my.source
#include <stdio.h>

#include "my.interface"

int main(void) {
    char x[MYBUFFERSIZE] = {0};
    x[0] = 'a';
    puts(x);
    return 0;
}

E:\Temp> gcc -x c my.source -o my.exe

E:\Temp> my
a

.c는 소스 파일이고 .h는 헤더 파일입니다.

진짜 도서관 파일이 아니에요.그냥 소스 파일이에요Stefano가 말한 처럼 .c 파일은 단순히 .h 파일(헤더 파일)에 개략적으로 기술된 실제 소스를 실제로 사용하거나 정의하는 C 소스 파일입니다.헤더 파일은 일반적으로 실제 소스 파일에 사용될 모든 기능 프로토타입과 구조를 간략히 설명합니다.레퍼런스/부록이라고 생각해 주세요.이것은 헤더 파일을 보면 알 수 있습니다.이러한 소스 파일에 쓰여져 있던 것을 사용하고 싶을 때,#include헤더 파일에는 컴파일러가 알아야 할 정보가 포함되어 있습니다.

.c 파일은 컴파일되는 소스 파일입니다..h 파일은 프로그램의 API를 해당 프로그램의 다른 부분이나 라이브러리를 만드는 다른 프로그램에 노출하기 위해 사용됩니다.

예를 들어 PizzaDelivery 프로그램에는 메인 프로그램이 있는 .c 파일과 유틸리티 기능이 있는 .c 파일이 있습니다.프로그램의 주요 부분을 유틸리티 기능을 사용하려면 API를 함수 프로토타입을 통해 .h 파일로 노출해야 합니다.이 .h 파일은 메인 .c 파일에 포함되어 있습니다.

.c : 'C' source code
.h : Header file

통,는.c되어 있습니다.또, 「실장」에는 「실장」이 포함되어 있습니다..h파일에는 구현의 "인터페이스"가 포함되어 있습니다.

언급URL : https://stackoverflow.com/questions/1695224/what-do-c-and-h-file-extensions-mean-to-c

반응형