programing

C++에 헤더 파일을 포함할 때 꺽쇠 괄호 < >와 큰따옴표 "의 차이가 있습니까?

prostudy 2022. 7. 10. 21:42
반응형

C++에 헤더 파일을 포함할 때 꺽쇠 괄호 < >와 큰따옴표 "의 차이가 있습니까?

중복 가능성:
#include <filename>과 #include "filename"의 차이점은 무엇입니까?

앵글 브래킷의 차이점은 무엇입니까?< >및 큰따옴표" "헤더 파일을 C++에 포함시키는 동안?

예를 들어, 어떤 파일을 포함할지를 나타냅니다.#include <QPushButton>다음 파일을 사용하여 포함할 수 있습니다.#include "MyFile.h"???

컴파일러에 의존합니다.즉, 일반적으로는"는 현재 작업 디렉토리의 헤더를 시스템헤더보다 우선시 합니다. <>는 보통 시스템 헤더에 사용됩니다.에서 사양까지 (섹션 6.10.2):

양식의 전처리 지시어

  # include <h-char-sequence> new-line

는, 실장 정의 장소의 시퀀스를 검색해, 사이의 지정된 시퀀스에 의해서 일의로 식별되는 헤더를 찾습니다.<그리고.>딜리미터를 지정하면 해당 디렉티브가 헤더 내용 전체로 대체됩니다.장소 지정 방법 또는 헤더의 식별 방법은 구현 정의입니다.

양식의 전처리 지시어

  # include "q-char-sequence" new-line

이 디렉티브가 지정된 시퀀스로 식별된 소스 파일의 콘텐츠 전체로 치환됩니다."구분 기호로 지정합니다.이름 있는 소스 파일은 구현 정의 방식으로 검색됩니다.이 검색이 지원되지 않거나 검색이 실패하면 명령이 읽은 것처럼 재처리됩니다.

  # include <h-char-sequence> new-line

(포함된 동일한 배열로)>문자(있는 경우)를 지정합니다.

따라서 대부분의 컴파일러에서는""는 먼저 로컬디렉토리를 체크하고 일치하는 것을 찾지 못하면 시스템 경로를 체크하기 위해 넘어갑니다.사용.<>는 시스템 헤더를 사용하여 검색을 시작합니다.

꺾쇠 괄호를 사용하면 컴파일러는 포함 경로 목록에서 파일을 검색합니다.큰따옴표를 사용하면 먼저 현재 디렉토리(컴파일 중인 모듈이 있는 디렉토리)를 검색한 다음 포함 경로 목록을 검색합니다.

따라서 관례상 표준 포함에는 꺾쇠 괄호를 사용하고 다른 모든 것에는 큰따옴표를 사용합니다.이것에 의해, 표준 헤더와 같은 이름의 로컬헤더가 있는 경우(권장되지 않음)에는, 각각의 경우에 적절한 헤더가 선택됩니다.

언급URL:https://stackoverflow.com/questions/3162030/difference-between-angle-bracket-and-double-quotes-while-including-heade

반응형