함수 선언이 포함된 저장소 클래스 지정자Storage-Class Specifiers with Function Declarations

함수 선언에서 static 또는 extern 저장소 클래스 지정자를 사용할 수 있습니다.You can use either the static or the extern storage-class specifier in function declarations. 함수에는 항상 전역 수명이 있습니다.Functions always have global lifetimes.

Microsoft 전용Microsoft Specific

내부 수준의 함수 선언은 외부 수준의 함수 선언과 동일한 의미를 갖습니다.Function declarations at the internal level have the same meaning as function declarations at the external level. 즉, 함수가 지역 범위에서 선언되더라도 나머지 변환을 통해 선언 시점부터 표시됩니다.This means that a function is visible from its point of declaration throughout the rest of the translation unit even if it is declared at local scope.

Microsoft 전용 종료END Microsoft Specific

함수의 표시 유형 규칙은 다음과 같이 변수의 규칙과 약간 다릅니다.The visibility rules for functions vary slightly from the rules for variables, as follows:

  • static으로 선언된 함수는 정의된 소스 파일 내에서만 볼 수 있습니다.A function declared to be static is visible only within the source file in which it is defined. 같은 소스 파일의 함수는 static 함수를 호출할 수 있지만 다른 소스 파일의 함수는 이름으로 직접 액세스할 수 없습니다.Functions in the same source file can call the static function, but functions in other source files cannot access it directly by name. 충돌 없이 다른 소스 파일에서 같은 이름을 사용하여 다른 static 함수를 선언할 수 있습니다.You can declare another static function with the same name in a different source file without conflict.

  • extern으로 선언된 함수는 나중에 static으로 재선언하지 않는 한 프로그램의 모든 소스 파일에서 볼 수 있습니다.Functions declared as extern are visible throughout all source files in the program (unless you later redeclare such a function as static). 모든 함수는 extern 함수를 호출할 수 있습니다.Any function can call an extern function.

  • 저장소 클래스 지정자를 생략하는 함수 선언은 기본적으로 extern입니다.Function declarations that omit the storage-class specifier are extern by default.

    Microsoft 전용Microsoft Specific

    Microsoft에서는 extern 식별자를 static으로 재선언하도록 허용합니다.Microsoft allows redefinition of an extern identifier as static.

    Microsoft 전용 종료END Microsoft Specific

참고 항목See Also

C 저장소 클래스C Storage Classes