코딩을 해 나가다 보면 코드 저 아랫부분에 있는 변수를 참조해야 할 일이 생기기도 합니다.
그럴때 어떻게 하면 될까요?
다음과 같은 코드를 볼까요
void SetList()
{
iList = 0;
}
int iList;
컴파일 하면 iList를 참조할 수 없어 에러가 납니다. 에러를 해결하려면 그냥
int iList;
이 코드를 void SetList() 위쪽으로 옮겨주기만 하면 됩니다.
그런데 실무에서 긴 복잡한 코딩을 하다 보면 코드가 지저분 해지고 유지보수 상의 문제 때문에
위로 옮겨 주기 어려운 경우나, 가독성 문제 때문에 옮겨주기 싫은 경우가 생깁니다.
이럴때 어떻게 하면 해결할 수 있을까요?
방법은 간단합니다.
void SetList()
{
extern int iList;
iList = 0;
}
int iList;
extern int iList; 이 한 문장이 상황을 깔끔하게 해결합니다.
보통 extern은 다른 모듈 즉 다른 소스에 있는 변수를 참조할 때 쓰는 것이라고 알고 있는데
자기 자신 모듈을 참조할 때도 사용할 수 있습니다.
|