2014-01-30 3 views
1

:전역 전역 변수에 대해 말할 권리 무엇

static 키워드없이 선언 된 경우 :

  1. 이있다 file scopeexternal linkage하거나 program scope을 가지고 볼 수
  2. 프로그램의 모든 파일에 적용

static 키워드로 선언 된 경우 :

  1. 그것은 global scopeinternal linkage 또는
  2. 그것은 file scopeinternal linkage

그리고 어떻게 글로벌 네임 스페이스 범위이 관련되어있다이있다?

이 개념은 실제로 어떻게 작동하는지 이해할 수 있다고 생각하지만 실제로는 혼란 스럽습니다.하지만 다른 장소에서 여러 가지 방법으로 호출하여 어떤 것이 옳은지 모릅니다.

답변

1

첫 번째 질문에 대한 답변이 모두 잘못되었습니다.

변수는 실제로 외부 링크를 가지지 만 선언 된 경우에만 다른 프로그램 단위에서 볼 수 있습니다.

두 번째 질문에 대해서는 변수가 파일 범위와 내부 연결을 가질 것입니다.

명시 적으로 지정된 네임 스페이스 외부에서 선언 된 변수는 전역 네임 스페이스에서 선언 된 것으로 간주됩니다. 외부 또는 내부 링키지가있는 Variavles는 전역 네임 스페이스를 포함한 모든 네임 스페이스에서 선언 할 수 있습니다.

우리는 함수 밖에서 선언 된 변수에 대해 말합니다.

+0

첫 번째 질문의 경우 첫 번째 대답은 파일 범위가 있음을 의미하지만 다른 번역 단위에서 'extern'으로 선언하여 '참조 할 수 있음'을 의미합니다. 따라서 혼란은 파일 및 전역 범위의 개념을 사용할 때 발생합니다. 파일 범위와 외부 연결 또는 전역 범위를 말하는 것이 옳은가요? 다른 번역 단위에서 참조하려는 경우 사용할 수 있도록 선언합니다. – LearningMath

+0

변수에는 전역 범위가 있다고 말할 수 있습니다. 그러나 동시에 모든 네임 스페이스에서 선언 될 수 있습니다. –