C - 기억 장치
,
,
,
.대상 이
이 있 으 면 그 는 프로그램의 실행 기간 에 계속 존재 합 니 다. 파일 역할 도 메 인 변 수 는 정적 저장 기 를 가지 고 있 습 니 다. 주의 하 세 요. 파일 역할 도 메 인 변수 에 대해 키 워드 는 저장 기 가 아 닌 링크 속성 을 나 타 냅 니 다. static 로 설명 한 파일 역할 도 메 인 변 수 는 내부 링크 가 있 습 니 다. 그러나 내부 링크 든 외부 링크 든.모든 파일 역할 영역 변 수 는 정적 저장 기 를 가지 고 있 습 니 다.스 레 드 저장 소 는 병렬 프로 그래 밍 에 사 용 됩 니 다. 프로그램 실행 은 여러 스 레 드 로 나 눌 수 있 습 니 다. 스 레 드 저장 소 가 있 는 대상 은 성명 되 었 을 때 부터 스 레 드 가 끝 날 때 까지 존재 합 니 다. 키워드
_Thread_local
로 대상 을 설명 할 때 모든 스 레 드 는 이 변수의 개인 백업 을 받 습 니 다.블록 역할 필드 의 대상 은 보통 자동 저장 기 를 가지 고 있 습 니 다. 프로그램 이 이 변 수 를 정의 하 는 블록 에 들 어 갈 때 이 변수 들 에 게 메모 리 를 할당 합 니 다.이 빠 른 시간 에 변수 로 분 배 된 메모 리 를 방출 합 니 다. 이 방법 은 자동 변수 가 사용 하 는 메모 리 를 중복 사용 가능 한 작업 영역 이나 임시 저장 영역 으로 보 는 것 과 같 습 니 다. 예 를 들 어 함수 호출 이 끝 난 후에 그 변수 가 사용 하 는 메모 리 는 다음 호출 함수 의 변 수 를 저장 하 는 데 사용 할 수 있 습 니 다. 길 어 지 는 배열 이 조금 다 릅 니 다. 그들의 저장 기간 은 성명 에서 블록의 끝 까지 입 니 다.블록의 시작 에서 블록의 끝 까지 가 아 닙 니 다. 아래 코드 에서 변수 number 와 index 는 bore () 함 수 를 호출 할 때마다 생 성 되 고 떠 날 때 삭 제 됩 니 다.
void bore(int number) {
int index;
for ( index = 0 ; index < number ; index ++ ) {
puts("They don't make them the way they used to.
";
}
}
그러나 블록 역할 도 메 인 변 수 는 정적 저장 기 를 가 질 수 있 습 니 다. 이러한 변 수 를 만 들 기 위해 서 는 변 수 를 블록 에 설명 하고 성명 전에 키워드 static 를 추가 해 야 합 니 다.
void more(int number) {
int index;
static int ct = 0;
}
여기 서 변수 ct 는 정적 메모리 에 저 장 됩 니 다. 프로그램 이 불 러 올 때 부터 프로그램 이 끝 날 때 까지 존재 합 니 다. 그러나 그의 역할 영역 은 more () 함수 에 정의 되 어 있 습 니 다. 이 함 수 를 실행 할 때 만 프로그램 은 ct 를 사용 하여 지정 한 대상 에 접근 할 수 있 습 니 다.(단, 이 함 수 는 다른 함수 에 이 저장 소의 주 소 를 제공 하여 이 대상 에 간접 적 으로 접근 할 수 있 습 니 다. 예 를 들 어 포인터 형 인삼 이나 반환 값 등).
C. 역할 도 메 인 을 사용 하고 링크 와 저장 기 는 변수 로 여러 가지 저장 방안 을 정의 합 니 다. 5 개의 저장 유형:
기억 영역
기억 기간
역할 영역
링크
성명 방식
저절로
저절로
덩어리.
없다
덩어리 안
레지스터
저절로
덩어리.
없다
블록 내 키워드 register 사용
정적 외부 링크
정적
문건
외부
모든 함수 외
정적 내부 링크
정적
문건
내부
모든 함수 외 키워드 static 사용
정적 연결 없 음
정적
덩어리.
없다
블록 내 키워드 static 사용
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.