#ifndef ~ #endif 의미

2019. 5. 1. 17:24임베디드/ATmega128

중복 정의를 방지하기 위해 설정한 장치

 

atmel stduio에서 헤더 파일을 생성하면

#infdef __함수이름_H__

~

#endif 의 구조가 만들어지는 것을 알 수 있다

main과 하나의 함수파일이면 상관이 없다. 하지만 여러 소스파일과 메인이 함께라면 이곳저곳 함수에서 자신이 사용하게 될 헤더를 부르게 된다. 최악의 상황에서는 재귀적으로 똑같은 헤더를 부를 경우가 있다.

이때 한번 정의한 상태에서 다른 함수에서 재정의를 한다면 컴파일 오류가 발생한다. 하지만 저 구문으로 정의를 감싸놓는다면 한 번만 정의되기에 충분히 문제없이 사용할 수 있다