트랙
/
C
C
/
학습 과정
/
정적 함수
정적

정적 함수 에서 C

{other: "%{count}개의 연습 문제"}

정적 함수 소개

함수는 기본적으로 외부 링키지를 가지며, 프로젝트의 다른 어떤 파일에서든 호출할 수 있어요. 링키지에 대한 자세한 내용은 링키지 개념을 참고해요. static 함수는 정의된 소스 파일 안에서만 호출할 수 있어요.

예를 들어

// file scope, internal linkage
// can only be called from within this file
static void some_function()
{
    // code snipped
}

// file scope, external linkage by default
// can be called from any other file in the project
int main()
{
    // code snipped
}

함수가 헤더에 선언되어 있더라도 static으로 정의하면 해당 소스 파일 밖에서는 호출할 수 없어요. 소스 파일이 그 헤더를 포함하고, 헤더에 선언된 static 함수를 호출한 뒤 컴파일하는 것까지는 성공할 수 있지만, 링커는 static 함수 정의를 찾지 못해요. 소스 파일에서 static으로 표시한 함수는 그 헤더 파일에 선언하면 안 돼요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요