programing

ANSI-C에서 정적이란 무엇을 의미합니까?

bestprogram 2023. 9. 24. 13:00

ANSI-C에서 정적이란 무엇을 의미합니까?

중복 가능:
C 프로그램에서 "정적"이란 무엇을 의미합니까?

무엇을.static키워드 평균은 C?

ANSI-C를 사용하고 있습니다.몇 가지 코드 예시를 봤는데, 그들은 다음 코드를 사용합니다.static키워드를 변수 앞과 함수 앞에 입력합니다.변수와 함께 사용하는 경우의 목적은 무엇입니까?그리고 기능과 함께 사용하는 경우의 목적은 무엇입니까?

간단한 대답처럼, 두 가지 용도가 있습니다.static변수를 정의할 때 키워드:

1- 파일 범위에 정의된 변수:static키워드, 정의된 외부 기능은 해당 파일 내에서만 볼 수 있습니다.다른 파일에서 액세스를 시도하면 링크 시 확인되지 않은 기호가 표시됩니다.

2 - 다음과 같이 정의되는 변수static함수 내의 블록 내에서 동일한 코드 블록의 다른 호출에 걸쳐 지속되거나 "survive"됩니다.초기화된 것으로 정의된 경우에는 한 번만 초기화됩니다.static변수는 일반적으로 다음과 같은 초기화가 보장됩니다.0기본적으로

static함수의 본문 내에서, 즉 변수 저장 분류기로 사용하면 함수 호출 간에 해당 값을 유지할 수 있는 변수가 됩니다. 함수 내의 정적 변수는 해당 함수에서만 볼 수 있는 전역 변수라고 할 수 있습니다.의 사용.static스레드에서 사용되는 함수를 항상 안전하지 않게 합니다. 피해야 합니다.

다른 사용 사례는 다음을 사용하고 있습니다.static전역 범위, 즉 전역 변수와 함수의 경우: 정적 함수와 전역 변수는 컴파일 단위에 로컬입니다. 즉, 컴파일된 이진 개체의 내보내기 테이블에 나타나지 않습니다.따라서 네임스페이스를 오염시키지 않습니다.문제의 컴파일 단위(즉, C 파일) 외부에서 모든 함수와 전역 변수에 접근할 수 없도록 정적으로 선언하는 것이 좋습니다!헤더 파일에 정적 변수를 배치해서는 안 됩니다(매우 드문 특수한 경우는 제외).

언급URL : https://stackoverflow.com/questions/4576607/what-does-static-mean-in-ansi-c