함수 수준 정적 변수 할당 및 초기화: 심층 분석
전역 변수는 일반적으로 프로그램 시작 시 할당 및 초기화되지만 할당은 함수 수준 정적 변수의 초기화는 좀 더 미묘한 패턴을 따릅니다.
함수 수준 정적 변수가 할당되는 경우
전역 변수와 달리 함수 수준 정적 변수는 함수가 처음 입력될 때 할당됩니다. 이는 함수가 호출될 때마다 발생하는 지역 변수 할당과 대조됩니다.
함수 수준 정적 변수가 초기화될 때
함수 초기화 -레벨 정적 변수는 함수가 처음 입력될 때 한 번만 발생합니다. 이는 static 키워드가 여러 함수 호출에서 변수의 값을 유지하도록 보장하기 때문입니다.
명확성을 위한 예
다음 코드 조각을 고려하세요.
void doSomething() { static bool globalish = true; // ... }
프로그램 실행이 처음으로 doSomething 함수에 도달하면 전역 변수가 함수의 스택 프레임에 할당됩니다. 그런 다음 true로 초기화됩니다. doSomething 함수에 대한 후속 호출에서는 전역 변수가 이미 할당 및 초기화되고 해당 값이 보존됩니다.
결론
요약하면 함수 수준 정적 변수는 함수가 처음 입력될 때 할당되고 첫 번째 입력 중에 한 번만 초기화됩니다. 이 동작은 전역 변수 및 지역 변수와 다르며 함수 내에서 영구 데이터를 유지하기 위한 독특하고 유용한 메커니즘을 제공합니다.
위 내용은 함수 수준 정적 변수는 전역 및 지역 변수와 비교하여 할당 및 초기화에서 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!