검색어 입력폼

[프로그래밍 언어구조론] C에서의 Static에 대하여

저작시기 2005.03 |등록일 2005.04.18 한글파일한컴오피스 (hwp) | 2페이지 | 가격 300원

소개글

C에서의 Static에 대해서입니다.

목차

없음

본문내용

일반적인 변수는 지역변수의 경우, 한 블럭이 끝나면 메모리에서 바로 사라져버리지만 (스택에 저장되어있기 때문.) static변수의 경우는 블럭이 끝나더라도 메모리에 계속 남아있다. 블럭 안에서만 유효한 값을 가지지만 자동변수와 같이 없어지지 않고 블럭으로 다시 돌아왔을 때 이전 값을 다시 이용 가능하다. 초기화를 생략하면 0으로 자동 초기화 하며 힙(Heap)에 메모리를 할당한다. 선언된 위치에 따라 다음과 같이 구분되는데 먼저 내부정적변수는 함수 내부에서 선언되며, 함수 내부에서만 사용이 가능하다. 하지만, 프로그램이 실행되는 동안만 존재한다. 그리고 외부정적변수는 함수 외부에서 선언되며, 다른 소스파일에서는 참조할 수 없다. 예를 들어 "static int i;"를 사용할 수 있는 범위는 함수 내부에서 선언되었다면 함수 내부에서만...함수 밖에서 선언되었다면 그 파일(*.c) 에서만 사용될 수 있다. 단 함수 내부에서 선언되었더라도 소멸되는 것이 아니라 static변수는 스택영역에 쌓이지 않고 data 영역이라고 불리우는 곳에 위치하면서 프로그램이 실행시작했을 때부터 끝날 때까지 계속 자기 영역을 유지하게 된다.함수외부에서 선언되었을 경우에 함수 바깥에 선언 하게 되면 변수는 프로그램 전체에 영향을 미치게 전역변수를 선언 된다. 만약 프로그램이 하나의 파일(*.c)로 되어있다면 static과 차이가 없지만 프로그램이 여러개의 파일로 되어있다면 static과 차이가 나타납니다
다운로드 맨위로