어떤 소스파일에
#include<a.h>
#include<a.h> 이렇게 두 번의 정의가 있다고 가정하자.
안에는 #define A 10 이라고 적혀있다.
그렇다면 컴파일시, 2번 중복정의로 인해서 에러가 발생한다.
그래서 ifndef ... 을 사용하는 것이다.
#ifndef A_H
#define A_H
#define A 10
#endif
중간소스...
#ifndef A_H
#define A_H
#define A 10
#endif
이렇게 정의하면, 처음에는 A_H가 정의되어 있지 않으니
define A_H define A 10 을 수행한다.
하지만 동작하다가 다시 만나면, 이미 정의되어 있기 때문에
다음번에는 무시하고 endif를 수행한다.
이렇게 중복된 선언을 막을 수 있게 해준다.
Mil.h 파일에도 동일한 내용이 등장한다.
생각해보자...
#ifndef __MIL_H
#include<a.h>
#include<a.h> 이렇게 두 번의 정의가 있다고 가정하자.
안에는 #define A 10 이라고 적혀있다.
그렇다면 컴파일시, 2번 중복정의로 인해서 에러가 발생한다.
그래서 ifndef ... 을 사용하는 것이다.
#ifndef A_H
#define A_H
#define A 10
#endif
중간소스...
#ifndef A_H
#define A_H
#define A 10
#endif
이렇게 정의하면, 처음에는 A_H가 정의되어 있지 않으니
define A_H define A 10 을 수행한다.
하지만 동작하다가 다시 만나면, 이미 정의되어 있기 때문에
다음번에는 무시하고 endif를 수행한다.
이렇게 중복된 선언을 막을 수 있게 해준다.
Mil.h 파일에도 동일한 내용이 등장한다.
생각해보자...
#ifndef __MIL_H
#define __MIL_H
//TBR MIL 8.0
#ifndef M_MIL_75_COMPATIBLE
#define M_MIL_READY_FOR_MIL80 1
#define M_MIL_USE_64_BIT_ATTRIBUTES 1
#else
#define M_MIL_READY_FOR_MIL80 0
#define M_MIL_USE_64_BIT_ATTRIBUTES 0
#endif