다음을 통해 공유


수명

"수명"의 기간 동안 프로그램의 실행 되어 있는 변수나 함수에.저장 기간 id 해당 수명을 결정합니다.

식별자 선언에서 저장소 클래스 지정자정적 정적 저장소 기간이 있습니다. 식별자 정적 저장소 기간이 ("전역" 라고도 함) 프로그램 기간 동안 저장소 및 정의 된 값에 사용 합니다.저장소를 예약 하 고 식별자의 저장 된 값은 프로그램 시작 전에 한 번만 초기화 됩니다.식별자 선언에 외부 또는 내부 링크에는 정적 저장소 기간이 있습니다 (참조 하십시오 포함).

식별자 없이 선언에서 정적 저장소 클래스 지정자를 함수 안에 선언 된 경우 자동 저장 기간을 했습니다.자동 저장 기간을 식별자 ("로컬 식별자") 식별자 정의 또는 선언 된 블록에만 내에 정의 된 값과 저장 된.자동 식별자 프로그램 해당 블록 입력 될 때마다 새 저장소 할당 되 고 해당 저장소와 해당 값을 잃게 프로그램이 종료 된 블록입니다.링크가 있는 함수가 선언 된 식별자도 자동 저장 기간이 없습니다.

다음 규칙 식별자 (정적) 전역 또는 로컬 (자동) 수명 있는지 여부를 지정 합니다.

  • 모든 함수가 정적 수명이 있습니다.따라서에 항상 프로그램이 실행 되는 동안 존재 합니다.식별자 선언 외부 수준 (즉, 모든 외부 프로그램의 함수 정의 같은 수준에서 차단) 전역 (정적) 수명을 갖습니다.

  • 변수가 지역 변수 이니셜라이저가 있으면 됩니다 생성 될 때마다 초기화 (로 선언 하지 않은 정적).함수 매개 변수는 로컬 수명을 합니다.포함 하 여 전체 수명 동안 블록 내에서 식별자를 지정할 수 있습니다에서 정적 저장소 클래스 지정자를 해당 선언에서.한 번만 선언 정적, 블록의 항목에서 값에서 다음 변수를 유지 합니다.

원본 프로그램을 실행 하는 전체 사용 기간 전역 식별자 존재 하기는 하지만 (에 외부에서 선언 된 변수 또는 지역 변수를 선언 합니다. 예를 들어 있는 정적 키워드), 프로그램의 모든 부분을 볼 수 없습니다.참조 하십시오 범위 및 표시 여부 표시 유형 및 참조에 대 한 내용은 저장소 클래스 토론에 대 한의 저장소 클래스 지정자 비 단말 이름입니다.

것과 같은 특별 한 라이브러리 루틴을 사용 하 여 만든 경우 동적 필요 하면 메모리를 할당할 수 있습니다 malloc.동적 메모리 할당 라이브러리 루틴을 사용 하므로 언어의 일부로 간주 되지 않습니다.참조는 malloc 에서 작동의 런타임 라이브러리 참조.

참고 항목

개념

수명, 범위, 가시성 및 링크