Detect language » Korean

변수를 선언할 때 static을 붙여줌으로서 그 변수는 자신이 어떤 변수이냐에 따라 다른 능력을 부여 받게 된다. 길게 설명한거 보고 결론 지을 필요 없이 일단 그 다른 능력이 어떤건지 보고 시작하자.

  • static이 전역변수에 붙었을 때.
    • 다른 파일에서 선언된 전역 변수들과 상종하지 않는다.
      • 여러명이 공동작업하는 과정에서 미리 명시되지 않는 전역변수는 동명의 다른 기능과 값으로 사용될 수 있는데 이것을 미리 방지 하기 위해서 static을 붙여준다.
      • 보안적인 부분에서 다른 함수와 공유하지 않는다.
  • static이 지역변수에 붙었을 때.
    • 변수는 메모리의 DATA영역에 저장된다.
      • 선언시 초기화를 해주면 DATA 영역에 있게 되고
      • 선언시 초기화를 안 해주면 BSS 영역에 자리잡게 된다.
    • 사용 범위는  함수 내 다른 변수와 마찬가지로 함수내로 국한된다.
  • 정적영역에 저장되므로 프로그램이 끝날 때 까지 존재한다.
  • 초기값이 지정되지 않았으면 0을 default값으로 가진다.

아래 코드는 static을 사용하여 변수 값이 어떻게 달라지는지 확인 할 수 있는 코드이다.



신고


티스토리 툴바