본문 바로가기
C C++/C C++ 잡다한 내용

[C/C++] #include <헤더>과 "헤더"의 꺽쇠, 쌍따옴표차이

by Go! Jake 2023. 5. 3.

 

#include <헤더>

#include <헤더>는 시스템 표준 경로(컴파일러와 함께 제공되는 헤더) 또는 사용자가 정의한 경로를 탐색한다. 예를 들어 유저가 test.h라는 헤더를 만들고, 임의의 헤더파일을 임의의 경로에 만든 후에 #include <test.h>만을 수행하고자 한다면 오류가 발생한다.
주로 시스템 헤더 파일(표준 라이브러리 등등)를 include하는데 사용되며 사용자가 경로를 정의하여 사용하고 싶다면 컴파일러 옵션을 사용하여 정의할 수 있다.
 
맞는 예시 2개를 보자.
표준 경로
#include <iostream> 
=> iostream.h는 common 헤더이고 표준 경로에 있음.
 
틀린 예시는 다음과 같다.
#include <test.h>
=> [Error] test.h: No such file or directoy 발생, 헤더를 찾지 못함.

에러 상황 No such file or directory
에러 상황

#include "헤더"

#include "헤더"는 소스 파일의 디렉토리에서 헤더 파일을 가져온다. 표준 헤더도 가져올 수 있다.
 
우선 파일명 기준으로 현재 경로에서 헤더를 탐색한다. 여기서 '현재 경로'란 예를 들어 test.c 파일에서 #include를 하는 경우 test.c 경로를 찾게 된다.  그리고 시스템 헤더 파일(표준 라이브러리 등등) 경로를 탐색한다.
 
개인적으로 주로 " " 따옴표를 사용하여 include하고 있다. 편하기 때문.

 

댓글