0

나는 < 라이브러리의 "header.h> 및"header.h "#include지시어. 링커가 파일을 정확히 검색하는 위치는? 검색은 어떤 순서로 수행됩니까?


1 답변


0

우리가 쓸 때<stdio.h>, 우리는 시스템의 include 디렉토리에서 사용할 수있는 헤더 파일을 참조합니다. 우리가 쓸 때#include <stdio.h>선행 처리기는 현재 디렉토리가 아닌 시스템 include 디렉토리에서 헤더 파일을 검색합니다. 우리가 쓸 때#include "stdio.h"선행 처리기는 현재 디렉토리에서이 헤더 파일을 찾은 다음 상위 디렉토리에서이 헤더 파일을 검색하기 시작합니다. 그래서 우리가 우리 자신의 것을 쓰면stdio.h, 그것을 현재 디렉토리에 저장하고 다음을 사용하여 프로그램에 포함하십시오.#include "stdio.h"시스템 헤더 대신 헤더가 포함됩니다.

즉, 각괄호 (<>) 우리는 파일이 표준 디렉터리에있는 경우 파일을 찾을 수 있음을 나타냅니다. 체계. 따옴표를 사용하면" ") 우리는 비표준 헤더가 사용되고 있음을 나타냅니다.


  • 이것은 반드시 사실 일 필요는 없습니다. 이러한 전처리 지시문의 차이점은 구현에 따라 다릅니다. 차이점을 확인하는 유일한 방법은 특정 컴파일러의 설명서를 읽는 것입니다. - David Schwartz
  • "전처리 기는 현재 디렉토리 및 그 부모 디렉토리에서이 헤더 파일의 검색을 시작한다. 상위 디렉토리에 있습니까? 절대 들어 본적이 없어. 그건 그렇게 컴파일러가 없다는 말은 아닙니다. - glglgl

연결된 질문


관련된 질문

최근 질문