C++의 Static을 알아보자

2022. 7. 11. 17:45·C++ 프로그래밍/함수

static은 정말 중요합니다. 제가 느끼기로 편리함과 위험성을 동시에 가지지만 제대로 알고 써야하기 때문입니다.

이 static 키워드는 변수나 함수에 대해 지정할 수 있는데, 다음과 같이 세가지 경우가 있습니다.

  • 지역변수를 static으로 처리하는 경우
  • 전역변수나 함수를 static으로 처리하는 경우
  • 클래스의 멤버 변수나 멤버 함수를 static으로 처리하는 경우

세 개 모두 자주 쓰는 것 같습니다. 마지막 세 번째는 이 글에서 말고 클래스 카테고리에서 다루겠습니다.
링크를 걸어두겠습니다.

(저는 이 책을 보기 전에 static을 구별하는 법을 모르고 있었습니다. 그냥 값이 유지되는 변수로만 생각하고 있었어요
이제 알았으니 됬죠.. 뭐...!( •̀ ω •́ )✧)


1. 정적 지역변수

변수의 가시 범위와 생존기간에서 배운 지역변수 앞에 static으로 선언하면 정적 지역변수 라고 합니다.

정적 지역변수는 일반 지역변수와는 달리 전역변수와 동일한 생존기간을 갖습니다.

즉, 사용은 함수 안에서만 할 수 있지만 프로그램이 실행되는 동안 생존하는 변수입니다!!!

그리고, 정적 지역변수는 전역변수와 같이 프로그램이 시작되면 만들어져 초기화가 됩니다!!!!

저는 이것을 이책을 보고 알았어요. 이때까지 아주 커다란 오해를 하고 있었습니다.(#°Д°)

이것을 꼭 기억해야합니다.

2.정적 전역변수와 정적 함수

전역변수나 함수도 static으로 처리할 수 있습니다.

그러나 이 경우는 의미가 완전히 달라집니다!

이것은 생존기간(lifetime)이 아니라 가시 범위(visibility)의 문제가 됩니다.

전역변수나 함수를 static으로 처리하는 것은 그 "변수나 함수를 해당 파일에서만 사용하라"는 의미입니다.

이것은 매우 중요한 의미를 갖습니다.

 

동일한 이름의 전역변수나 함수를 여러 파일에서 각기 다른 용도로 만들어 사용할 수 있다는 것을 의미합니다.

(저는 이 부분을 헷갈렸어요 제가 영어를 느낌으로 해석하는것도 있긴한데. 뭔가 static은 공공의 다 오픈하는 느낌을 주는데 정적 전역변수와 정적 함수는 전혀 반대되는 기능을 하기 때문입니다. 물론 뜻은 전혀 다른 정적의, 움직이지 않는 입니다.)

저작자표시 비영리 변경금지 (새창열림)

'C++ 프로그래밍 > 함수' 카테고리의 다른 글

참조자의 반환  (0) 2022.07.21
함수로 배열을 전달, 반환  (0) 2022.07.21
변수의 가시 범위와 생존기간  (0) 2022.07.11
디폴트 매개변수  (0) 2022.06.30
라이브러리 함수와 사용자 정의 함수  (0) 2022.06.29
'C++ 프로그래밍/함수' 카테고리의 다른 글
  • 참조자의 반환
  • 함수로 배열을 전달, 반환
  • 변수의 가시 범위와 생존기간
  • 디폴트 매개변수
같은편
같은편
책을 통해 이때까지 블로그나 유튜브에서 얻었던 지식의 파편들을 정립하고 합쳐 단단한 발판으로 만들기 위한 블로그
  • 같은편
    홍익대 게임소프트웨어전공의 프로그래밍 단련 공간
    같은편
  • 전체
    오늘
    어제
    • 분류 전체보기 (88) N
      • 게임 프로그래밍 패턴 (2)
      • C# 프로그래밍 (26)
      • C++ 프로그래밍 (32)
        • 함수 (8)
        • 클래스 (22)
      • 알고리즘 공부 (16) N
        • 백준 사이트 문제(C++) (3) N
        • codingame 사이트 문제(C#) (11)
      • 유니티엔진 - 게임 공부 (3)
      • 언리얼엔진 - 게임 공부 (4)
      • 쓸모 있을 수 있는 팁 (2)
      • 일상이야기 (3)
  • 링크

    • 깃허브
  • 인기 글

  • 태그

    람다식
    C#
    알고리즘
    최단 경로
    비동기
    함수
    task
    예외 처리
    복사 생성자
    객체
    탐욕 알고리즘
    문제 풀이
    언리얼엔진
    클래스
    DFS
    언리얼엔진4
    c++
    언리얼
    queue
    스레드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
같은편
C++의 Static을 알아보자
상단으로

티스토리툴바