C언어

C언어 헤더파일 추가 #include "파일명", #ifndef #endif로 확인

거부 2021. 8. 9. 18:20

1. #include <stdio.h> 와 "stdmine.h" 의 차이

 

[EXPLANATION] 설명

라이브러리에 이미 포함되어있는 헤더파일을 불러올 때는 #include <>를 사용한다.

가령, printf와 scanf 처럼 입출력함수를 정의하고 있는 헤더파일 stdio.h 를 include 하면 코드 내에서 자유롭게 입출력 기능을 사용할 수 있다. 이를 위해 소스파일에서 메인함수보다 먼저 #include <stdio.h> 하면 된다.

 

한편, 직접 헤더파일을 만들 수도 있다. 이 경우 #include ""를 사용한다.

가령, 배열을 초기화하고 데이터를 저장한 뒤 조회 및 삭제하는 함수들의 프로토타입을 선언하고 각종 함수를 초기화하기 전에 typedef로 대체해주는 기능을 헤더파일 stdmine.h 라고 임의로 선언한다면 #include "stdmine.h" 해주면 된다.

 

[SYNTAX] 사용법

#include <stdio.h>

#include "stdmine.h"

이때, 후자의 경우 헤더파일명은 별도수정없이 정해둔 그대로 작성해서 불러온다. (stdo_h아니고 stdo.h 그대로)

 

2. #ifndef와 #endif

 

[EXPLANATION] 설명

#ifndef로 검사할 헤더파일명이 선언되어있지않은 상태라면 선언하고, 이미 선언된 상태라면 해당 헤더파일을 열어 사용하려했던 모든 코드 명령을 수행하지 않음으로서 오류를 막는다. 따라서 #include로 포함할 헤더파일에서 생길 오류를 막는 #include guard 이다. 이때 if n def 는 if (this header file is) not defined, then define it into (헤더파일명) 으로 해석하면 된다.

 

[SYNTAX] 사용법

#ifndef __헤더파일명__

단, 헤더파일명 내의 특수기호는 전부 _처리한다. 질문) 스페이스도?

#endif 로 닫아준다.

 

[CODE] 코드