이 주제에 대해 많은 사람들이 혼동됩니다. 전역 변수의 정의는 다음과 같습니다.
프로그램의 어느 곳에서나 액세스 할 수있는 것.
이것은 키워드로 선언 된 파일 범위 변수 와 동일하지 않습니다 static
. 그것들은 전역 변수 가 아니며 지역 개인 변수입니다.
int x; // global variable
static int y; // file scope variable
void some_func (void) {...} // added to demonstrate that the variables above are at file scope.
전역 변수를 사용해야합니까? 괜찮은 경우가 몇 가지 있습니다.
다른 모든 경우에는 전역 변수를 사용해서는 안됩니다. 그렇게 할 이유가 없습니다. 대신 파일 범위 변수를 사용 하십시오 . 이는 완벽하게 좋습니다.
특정 작업을 수행하도록 설계된 독립적 인 자율 코드 모듈을 작성하려고 노력해야합니다. 이러한 모듈 내에서 내부 파일 범위 변수는 개인용 데이터 멤버로 존재해야합니다. 이 디자인 방법은 객체 지향으로 알려져 있으며 좋은 디자인으로 널리 알려져 있습니다.