전역변수와 static 선언된 지역변수와 메모리 관련 질문입니다.

idea4life의 이미지

X, Y 전역변수가 A파일에 F함수에서만 사용하고 있는데요
함수 f에 지역변수로 static 변수 X, Y로 선언하고 사용한다면 어떤 이득이 있나요?

메모리? 속도?

미즈라에서 권고 하고 있어서 궁금합니다.

HDNua의 이미지

C의 경우에 대한 답변입니다.

1. 메모리와 속도에서는 차이 없습니다. 전역 변수와 static 선언된 변수는 접근 범위가 다를 뿐 사실상 같습니다.

2. static으로 선언된 변수는 다른 함수에서 접근할 수 없기 때문에, 정보가 은닉된다는 점에서 코드가 안전해집니다.
전역 변수로 X가 선언된 경우에는 다른 함수에서 실수로 값을 변경할 가능성이 생기지요.
물론 프로그램을 혼자 작성하고 어지간히 큰 프로그램을 만들지 않는 이상 그런 바보같은 실수를 하지는 않습니다만 안전성이 높아지는 건 의심할 여지 없습니다.

저는 이렇게 생각했습니다.