티스토리 뷰
[ static 키워드 붙는 경우 ]
- 전역 static 변수
- 로컬 static 변수
- static 함수
- class내의 static 변수 (다음 포스팅에: https://o0oheamao0o.tistory.com/129)
- class내의 static 함수 (다음 포스팅에: https://o0oheamao0o.tistory.com/129)
Static 특징
우선 static에 대해 잠시 정리하면
- static 변수는 정의된 시점에서 메모리가 할당된다.
- 변수가 정의된 스코프(범위, { })가 종료되어도 static 변수는 메모리가 반환되지 않는다.
(일반 지역변수는 자신이 선언된 스코프가 끝나면 메모리도 반환된다.)
- static 변수는 프로그램 내내 지속되고, 프로그램이 종료되면 메모리가 반환된다.
전역 static 변수
- 전역 범위에 선언된 static변수를 말한다.
- 프로그램이 시작될 때 data영역에 할당되고, 프로그램이 종료될 때 소멸한다.
- 해당 파일 내에서만 접근이 가능하다.
- 초기화하지 않으면 자동 0으로 초기화된다.
로컬 static 변수
- 함수 내에서( {} 내에서) 선언된 static변수를 말한다.
- 프로그램이 시작될 때 data영역에 할당되고, 프로그램이 종료될 때 소멸한다.
- 접근은 해당 함수 안에서만 가능하지만, 함수가 끝나도 소멸되지 않는다.( 메모리가 반환되지 않는다.)
- 초기화하지 않으면 자동 0으로 초기화된다.
- 함수를 여러번 호출해도 여러번 생성되지 않으며,
처음 함수를 호출할 때 생성된 그 변수 그대로 프로그램이 종료될 때까지 유지된다.
void AddCnt(){
static int iCnt;
iCnt++;
cout << iCnt;
}
int main(){
for(int i=0;i<5;i++) AddCnt(); //1 2 3 4 5가 출력된다.
}
static 함수
- 해당 함수를 다른 파일에서 사용 불가하게 만든다.
(c++에서는 함수 중복 선언문제를 namespace등으로 해결하긴 함. c시절에는 static으로 해결함)
- class내의 static 변수
- class내의 static 함수
- Total
- Today
- Yesterday
- androidstudio
- ()
- multiple Column
- VS Code
- select
- 트리
- 버추얼박스
- DevExpress
- Flutter
- Mac
- ubuntu
- mac unity vscode autocomplete
- =
- VirtualBox
- 해마코딩
- mac Unity vscode 자동완성
- 컨셉때문에킹받으셨나요..죄송합니다..제가 봐도 킹받네요
- Tree
- QO
- Winform
- Unity vs code
- 우분투
- GIT
- flutterdoctor
- apt-get
- DataSource
- gridContorl
- Unity
- apt
- Query
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |