본문 바로가기

C언어

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

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] 코드

 

 

 

'C언어' 카테고리의 다른 글

C언어 strcmp strncmp 비교  (0) 2021.08.12
C언어 strcmp 문자열 비교  (0) 2021.08.12
C언어 함수 포인터 사용법 void(* fp)();  (0) 2021.08.09
c언어 동적할당 받는 법  (0) 2021.08.05
c언어 #ifndef #endif headerfile  (0) 2021.08.03