#ifndef~#endif 를 사용하지 않았을 떄
헤더파일 1
int add(int a,int b);
헤더파일 2
#include "헤더파일1"
int add2(int a, int b);
메일소스파일
#include "헤더파일1"
#include "헤더파일2"
이렇게 작성되 있다고하면 메인파일을 컴파일하면
int add(int a,int b);
int add(int a,int b);
int add2(int a, int b);
이렇게 add(int a, int b)가 2번 정의된다.
#ifndef~#endif 를 사용했을 떄
헤더파일 1
#ifndef head
#define head
int add(int a,int b);
#endif
헤더파일 2
#include "헤더파일1"
int add2(int a, int b);
메일소스파일
#include "헤더파일1"
#include "헤더파일2"
이렇게 작성되 있다고하면 메인파일을 컴파일하면
#ifndef head
#define head
int add(int a,int b);
#endif
#ifndef head
#define head
int add(int a,int b);
#endif
int add2(int a, int b);
이렇게 됐다가
int add(int a,int b);
int add2(int a, int b);
이렇게 된다.