C static 키워드 이해

1600 단어 static
오늘 이런 절 차 를 살 펴 보 자.
#include<stdio.h>

int count =1;	



int fun(void)

{

	static int count =10;

	return count--;

}



int main(void)

{

	printf("global\t\tlocalstatic
"); for(;count<=10;count++) printf("%d\t\t%d
",count,fun()); return 0; }

 실행 결 과 는 다음 과 같다.
global          localstatic

1               10

2               9

3               8

4               7

5               6

6               5

7               4

8               3

9               2

10              1


만약 당신 이 위의 절 차 를 이해 했다 면 아래 의 문장 은 볼 필요 가 없습니다. 그렇지 않 으 면 계속 하 세 요.
static 는 c 에서 변 수 를 수식 할 수도 있 고 함 수 를 수식 할 수도 있다.
변 수 는 c 에서 존재 하 는 데이터 구역, 스 택 과 더미 로 나 눌 수 있 습 니 다. static 은 전체 변수 에 대한 수식 으로 나 눌 수 있 습 니 다. 이 변 수 를 참조 하 는 것 만 제한 한 것 으로 볼 수 있 습 니 다.어떤 프로그램 은 많은 c 파일 로 구성 되 어 있다.서로 변 수 를 참조 할 수 있 지만 static 수식 을 추가 하면 이 파일 의 함수 에 만 이 변 수 를 참조 할 수 있 습 니 다.static 스 택 변수 에 대한 수식 은 스 택 변수의 수명 주기 가 프로그램 실행 이 끝 날 때 까지 연장 되 었 다 고 볼 수 있 습 니 다.일반적으로 스 택 변수의 생명 주 기 는 OS 에 의 해 관리 되 고 스 택 을 탈퇴 하 는 과정 에서 스 택 변수의 생명 도 끝 납 니 다.그러나 static 수식 을 추가 한 후 변 수 는 스 택 에 저장 되 지 않 고 전역 변수 와 함께 저 장 됩 니 다.또한, 함 수 를 정의 한 후에 사용 할 수 없 지만, 함 수 를 다시 호출 할 때, 함 수 를 계속 사용 할 수 있 으 며, 지난번 호출 된 후에 남 긴 값 을 저장 합 니 다.static 의 함수 에 대한 수식 은 전역 변수 에 대한 수식 과 비슷 하 며, 이 파일 의 함수 에 의 해 만 호출 될 수 있 으 며, 같은 프로그램의 다른 파일 의 함수 에 의 해 호출 될 수 없습니다.
이렇게 되면 위의 절 차 는 이해 하기 어렵 지 않 겠 지?
그러나 저 는 데이터 영역 에 똑 같이 놓 인 두 개의 동명 변수 (예 를 들 어 상례 의 count) 가 어떻게 관리 되 는 지 잘 모 르 겠 습 니 다.기술 이 부족 해서 머리 가 크 네......................................................

좋은 웹페이지 즐겨찾기