더북(TheBook)

동일한 범위에 같은 변수 이름을 두 번 정의하면 오류가 발생한다.

범위의 장점은 변수가 범위 바깥 어딘가에 이미 정의되어 있는지에 대한 여부를 걱정하지 않아도 된다는 것이다. 범위는 단지 숨겨져 있을 뿐이다. 이로 인해 충돌이 발생하지 않는다.* 불행하게도 숨기기는 바깥쪽 범위에 있는 같은 이름의 변수에 접근할 수 없게 만든다. 우리는 이름 바꾸기로 이 문제를 어느 정도 극복할 수 있다. 그러나 중첩과 접근성을 관리하는 더 나은 해결책은 바로 네임스페이스(Namespace)이다. 이에 대해서는 3.2.1절을 보라.

static 변수는 이 규칙을 따르지 않는다. static 변수는 프로그램이 끝날 때까지 살아있지만, 범위 안에서만 보인다. 우리는 이 단계에서 static 변수를 자세히 소개하는 게 도움이 되기보다는 더 산만해질 수 있다고 우려했다. 따라서 설명을 A.2.2절로 미루기로 했다.

 

* 매크로와는 달리 C로부터 내려온 더 이상 쓸모없고 무모한 기존 기능은 어떤 대가를 치르더라도 피해야 한다. 왜냐하면 언어의 모든 구조 및 안정성을 저해하기 때문이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.