Soft Ware/C 언어!!

#ifndef ~ #endif 와 #pragma once의 차이점

달려가보자 2011. 10. 9. 22:25
둘다 헤더파일을 한번만 정의할때 사용되는 키워드이다 !!

그런데 이 두개의 차이점은 ?

 보통 #pragma once와 #ifndef를 헤더파일 상단에 붙이는데

둘다 헤더파일을 한번만 컴파일 하라는 의미다

차이점은 #pragma는 컴파일러마다 종속적인 사항을 지시하는거라 표준이 아니다

하지만 대부분의 컴파일러들이 지원한다고한다

빌드시 #pragma once를 포함한 헤더파일을 기억해두고 나중에 똑같은 헤더파일을 만나게되면

아예 열어보지도 않고 넘어간다

근데 #ifndef는 언어차원의 표준이다

 

둘을 비교할때 속도는 #pragma once가 중복된 파일을 만난경우 아예 넘어가므로 약간 빠르다

이것은 오직 인클루드 가드 용도로만 정해져있기 때문이다

하지만 #ifndef는 모든 헤더파일을 열어서 확인하는 방식이다

이 부분은 다른분은 블로거에서 가지고 온 글이다 !!