C 개발자는 오랫동안 번역 단위 내에서 '정적' 키워드를 사용해 기호 가시성을 제어해 왔습니다. 그러나 이 방식은 n3092에서 더 이상 사용되지 않고 n3225에서 제거되었습니다.
'static'의 지원 중단은 네임스페이스 범위에서 개체를 선언하는 데 사용을 막기 위한 것입니다. , 명명되지 않은 네임스페이스가 더 나은 대안을 제공했기 때문입니다. 그러나 C 결함을 추적하는 문제는 이러한 변경에 대한 미묘한 이유를 드러냅니다.
C 표준 핵심 언어 결함 보고서의 개정 94에서 문제(1012. Undeprecating static )는 다음과 같이 설명합니다.
7.3.1.1 [namespace.unnamed]에서는 이름이 지정되지 않은 네임스페이스가 더 우수한 대안을 제공하기 때문에 네임스페이스 범위에서 변수를 선언하기 위해 static 키워드를 사용하는 것이 더 이상 사용되지 않는다고 명시하고 있지만 해당 기능이 가까운 미래에 언제든지 제거될 예정입니다.
이 업데이트는 지원 중단을 효과적으로 되돌립니다. 'Static'은 내부 연결이 있는 함수 및 개체를 선언하는 데 유효한 키워드로 남아 있습니다. 주요 장점은 이름이 지정되지 않은 네임스페이스를 사용하는 것에 비해 간결하고 추가 상용구 코드가 없다는 점입니다.
원래 지원 중단은 C 표준에 대한 C 준수를 향상시키는 것을 목표로 했습니다. , C는 이름이 지정되지 않은 네임스페이스를 인식하지 못하기 때문입니다. 그러나 지원 중단을 철회하기로 한 결정은 C 프로그램을 C로 컴파일하는 현실 세계의 복잡성을 인정한 것입니다.
'정적'의 지원 중단은 선의였을 수도 있지만 제거되었습니다. 이름이 지정되지 않은 네임스페이스는 내부 링크가 있는 개체를 선언하는 '정적' 유틸리티를 완전히 대체하지 못한다는 인식을 반영합니다. 결과적으로 개발자는 C 표준에서 '정적'의 존재가 조만간 사라질 가능성이 낮으므로 안심하고 계속 '정적'을 사용할 수 있습니다.
위 내용은 C의 'static' 키워드는 정말로 더 이상 사용되지 않습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!