1
2
|
#include <aaa.h>
#include "aaa.h"
|
cs |
위 두 줄의 차이점은 무엇일까? 보통 <> 은 standard library header 에 사용하고 "" 은 user defined header 사용한다고 알려져 있다. 관용적으로 그렇게 쓰다보니 크게 틀린 말은 아니지만 정확한 이해는 다음과 같다.
먼저 <> 로 되어 있는 include 문은 컴파일러 구현체에 따라 정의된 곳에서 header 를 찾아 그 내용을 가지고 온다. 이때 헤더를 가르키는 문자열은 유일해야 한다. 이 헤더가 가르키는 것이 꼭 파일일 필요도 없다.
다음 "" 로 되어 있는 include 문은 컴파일러 구현체에 따라 정의된 곳에서 해당 파일을 찾아 그 내용을 가지고 온다. 만약 파일을 찾지 못하면, "" 를 <> 로 바꿔 위에서 얘기한 replacement 를 다시 진행한다.
그러니까 둘의 차이점은 header 를 읽을 것인가 아니면 source file 을 읽을 것인가라고 생각하면 된다. standard header 들이 꼭 파일로 존재하지 않고 compiler 에 built-in 으로 들어가 있을 수도 있다는 점을 생각해보면 쉽게 이 차이가 이해될 것이다.
Reference
http://stackoverflow.com/questions/21593/what-is-the-difference-between-include-filename-and-include-filename
'DevTool' 카테고리의 다른 글
[git] system global local 차이점 (0) | 2023.03.15 |
---|---|
[git] local git default branch를 master 에서 main으로 변경 (0) | 2022.03.30 |
windows 10 가상 데스크톱 단축키 (0) | 2020.05.18 |
Visual Studio 유용한 단축키 정리 (feat.자동정렬) (2) | 2018.07.26 |
비주얼 스튜디오 콘솔창 유지 (2) | 2018.07.20 |
댓글