헤더 파일
헤더 파일은 ‘우두머리’,’제목’이라는 뜻으로. main() 보다 먼저 작성하고 전처리 구문이라고 부르며 유사한 종류의 라이브러리 함수들이 포함된 책의 소제목이라고 생각할 수 있습니다. 또한 헤더 파일에는 사용하는 명령들의 내용이 미리 기록되어 있습니다.(예들 들어 ‘+’라는 연산자를 사용할수 있는것은 헤더 파일 안에 ‘+’가 ‘2개의 숫자를 더하라’라는 명령이 사전에 약속되어 있는 기호이기 때문이죠.)
라이브러리 함수 – printf( )와 같이 사전에 그 내용이 정의된 함수로서, 마치 도서관의 책 처럼 미리 만들어 놓고 필요하면 언제든지 꺼내어 쓸 수 있는 함수를 말합니다.
아래의 코드를 직접 작성하고 실행해 봅시다.
#include <stdio.h> main () { printf ( “Hello world”); }
실행결과
위 프로그램을 실행하면 “Hello world”라는 문자열이 출력됩니다.
(만약 사진이 보이지않는다면 새로고침 해주세요)
- 위 코드에서 헤더 파일은 무엇일까요?
- 보통 헤더 파일은 #include<기본 라이브러리 헤더>의 기본형식을 가지고 있습니다.
- 또한 1행에서 stdio.h 헤더 파일은 printf() 함수의 실행 내용이 미리 정의 되어 작성되어 있는 파일입니다.
- 4행에서 printf() 함수에 “Hello, world” 문장(문자열)이 전달되면 문자열이 출력되어 모니터에 나와 우리가 볼수 있는 것이죠
stdio – 표준 입출력(standard input output)의 약자로 입력과 출력에 관련된 라이브러리 함수들이 포함되어 있습니다.
헤더 파일의 중요성
헤더 파일이 main() 함수 이전에 작성되지 않으면 main() 함수 내에 작성된 내용들을 번역하지 못하여 오류가 발생합니다.
아래와 같이 헤더 파일 부분을 없애고 코드를 컴파일해 봅시다.
main () { printf ( “Hello world”); }
실행결과
위 프로그램을 실행하면 오류가 발생합니다.
-
프로그램을 컴파일하면 3행에서 오류가 발생합니다.
-
또한 printf() 함수가 미리 정의되지 않아서 <stdio.h>를 포함 하라는 메세지를 보여줍니다.
주의
어? 그런데 프로그램이 정상적으로 실행이 됐네요?
그것은 우리가 쓰고 있는 code::block은 조금 똑똑해서 경고를 해주고 자동으로 printf에 대해 정의해주어서 실행된 겁니다. 원래대로라면 실행되지 않아요. 그러니 꼭 헤더 파일 쓰는 것을 까먹으면 안됩니다.
그것은 우리가 쓰고 있는 code::block은 조금 똑똑해서 경고를 해주고 자동으로 printf에 대해 정의해주어서 실행된 겁니다. 원래대로라면 실행되지 않아요. 그러니 꼭 헤더 파일 쓰는 것을 까먹으면 안됩니다.