옛날에 찾아봤었는데 기억이 안나서 다시 찾아봤다.
자세한 내용은 C standard, 6.10.2 섹션에 2 ~ 4까지에 나와있다.
[1] #include < >는 컴파일러가 미리 정해놓은 위치 A에서 헤더를 찾는다. (파일이 아닐 수 있다.)
[2] #include " "는 컴파일러가 미리 정해놓은 위치 B에서 파일을 찾는다. 만약 파일을 찾지 못하면, " "를 < >로 바꿔 [1]을 진행한다.
( [2]가 [1]보다 범위가 넓다. )
A는 보통 /usr/include/ 같은 위치이고
B는 소스파일이 있는 위치이다.
위와 같은 이유로
https://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html 에 따르면
#include < >는 시스템 헤더를 include 하는 데 사용하고,
#include " "는 유저의 헤더를 include 하는 데 사용한다.
참고
- https://stackoverflow.com/questions/21593/what-is-the-difference-between-include-filename-and-include-filename
- https://gsong.pe.kr/dev/2012/02/11/include-ec-9d-98-ec-8c-8d-eb-94-b0-ec-98-b4-ed-91-9c-ec-99-80-eb-b6-80-eb-93-b1-ed-98-b8-ea-b8-b0-ed-98-b8-ec-9d-98-ec-b0-a8-ec-9d-b4.html
- https://kldp.org/node/82551
- http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf#page=182
'C, C++ > C, C++' 카테고리의 다른 글
[C] 4가지의 메모리 저장소 (스택, 힙, 데이터, 코드 영역) (0) | 2022.01.30 |
---|---|
[C] C언어에서 음수를 표현하는 방법 (0) | 2022.01.07 |
컴파일(Compile) 과정 (0) | 2022.01.05 |
[C] 모두의 C언어 복습&정리 (2) (0) | 2022.01.03 |
[C] 모두의 C언어 복습&정리 (1) (0) | 2021.12.28 |