-
static 변수Coding/Tip !! 2018. 9. 18. 02:34
보통 초기화를 한 변수는 Data 영역에 메모리가 할당되며, 초기화를 하지 않은 변수들의 경우 BSS 영역에 할당된다.
하지만 Static 변수는 초기화를 하지 않은 상태에서 해당 변수를 사용하지 않을 경우 메모리 자체가 할당되지 않는다
그에 반해 전역변수는 초기화를 하지 않더라도 무조건 메모리에 올라간다.
Static 객체의 경우 처음 구문이 수행되는 시점에 처음 생성자를 호출하도록 할 수 있으며
이를 함수화해서 호출하면 생성자의 호출 시점을 조정하는게 가능해진다.
다른점은 초기화를 한 번만 한다는 점 (프로그램이 종료될 때까지 메모리공간에 존재한다)과
지역변수와 달리 해당 함수가 반환되어도 소멸되지 않는다.
Static 변수는 지역변수와 전역변수의 성질을 둘 다 가진다고 할 수 있다.
반응형'Coding > Tip !!' 카테고리의 다른 글
friend 키워드 사용 (0) 2018.09.19 ::연산자와 . 연산자 (0) 2018.09.19 const 참조자 (0) 2018.09.17 댕글링 포인터 ( Dangling Pointer) (0) 2018.09.17 strcmp와 strncmp (0) 2018.08.20 댓글