IT/C

1. 기초 헤더파일(h.)과 소스파일( .C, .CPP ) 차이점

Clair_de_Lune 2024. 7. 4. 14:31
728x90
  1. 1.역할과 목적:
    • 헤더파일 (.h):
      • 주로 함수, 클래스, 매크로, 데이터 타입 등의 선언을 포함합니다.
      • 코드의 인터페이스를 정의하여 다른 파일들이 이 파일을 통해 필요한 선언을 참조할 수 있도록 합니다.
      • 여러 소스파일에서 공통적으로 사용할 수 있습니다.
    • 소스파일 (.c, .cpp):
      • 함수와 클래스의 구현을 포함합니다.
      • 실제로 프로그램이 동작하는 로직을 담고 있습니다.
      • 컴파일러가 이 파일을 컴파일하여 실행 가능한 바이너리 코드로 변환합니다.
  2. 구조와 내용:
    • 헤더파일:
      • 주로 선언만 포함하고, 실제 구현 코드는 포함하지 않습니다.
      • 예시: 
      • // example.h
        #ifndef EXAMPLE_H
        #define EXAMPLE_H
        
        void hello();  // 함수 선언
        
        #endif
        
    • 소스파일:
      • 함수와 클래스의 구체적인 구현을 포함합니다.
      • 예시: 
      • // example.c
        #include "example.h"
        #include <stdio.h>
        
        void hello() {
            printf("Hello, World!\n");
        }
        
  3. 컴파일 과정:
    • 헤더파일:
      • 소스파일에서 #include 지시문을 통해 포함됩니다.
      • 직접 컴파일되지 않고, 포함된 소스파일의 일부로 간주됩니다.
    • 소스파일:
      • 컴파일러에 의해 직접 컴파일되며, 목표 파일(.o 또는 .obj)로 변환됩니다.
      • 여러 소스파일이 각각 컴파일된 후, 링커에 의해 하나의 실행 파일로 결합됩니다.

요약:

  • 헤더파일은 선언을 포함하고, 소스파일은 구현을 포함합니다.
  • 헤더파일은 다른 파일들에게 인터페이스를 제공하며, 소스파일은 실제 동작을 구현합니다.
  • 헤더파일은 직접 컴파일되지 않고, 소스파일은 컴파일러에 의해 컴파일됩니다.

이와 같은 차이는 코드의 모듈화를 용이하게 ,재사용성을 높이고, 유지보수를 쉽게 만든다.

 

 

 

728x90