티스토리 뷰

 객체 지향 언어가 아닌 C언어만 아는 상태라면 static const와 const의 차이점에 대해 잘 모를 수 있다.
  static const는 객체 지향 언어에 해당하는 C++과 같은 프로그래밍 언어에서 자주 사용하는 상수 선언 방법이다. 그렇다고 일반적으로 C언어에서 사용하는 const를 사용하지 않는것은 아니다. const도 사용하고 static const도 사용한다.
 이 두 상수선언방법에는 여러가지 차이점이 있는데, 가장 대표적인 차이점은 C++에서 const를 사용하면, 해당 클래스 내부에서만 인식할 수 있다는 점이다.
예를들어, People이라는 클래스에서 const int height = 180 을 선언했다면 이 height 멤버변수는 오직 People클래스 내부에서만 인식할 수 있다. 그럼 다른 외부 클래스에서도 height값을 상수로 인식하고 싶을 땐 static const키워드를 사용하면 된다. 이 키워드를 사용해 상수 선언을 하게 되면, 해당 클래스뿐만 아니라 외부 클래스에서도 상수로 인식할 수 있다.

참고: Do it! bada 모바일 프로그래밍 by 여인춘
댓글
  • 프로필사진 a 지나가다가 들려요. 함수 ㄴ내부에서 차이가 뚜럿하죠
    const는 호출 될 떄마다 초기화 하는데(물론 컴파일러와 설정에 따라 매크로처럼 대입 형태로 컴파일링 될 수도 있긴하지만)
    static const는 컴파일 시기에 아예 초기화 되고 쭉 그 상태로 가죠

    메모리 영역도 데이터랑 스택/힙 영역으로 차이 있고요(const 전역 변수 제외 하고)
    이 영역 차이 떄문에 위에 글 내용의 접근 차이를 보여주는거죠
    2020.03.05 15:17
댓글쓰기 폼