C의 정적 함수는 개체 파일로 제한된 범위를 갖는 함수입니다. 이것은 정적 함수가 개체 파일에서만 볼 수 있음을 의미합니다. 함수 이름 앞에 static 키워드를 넣으면 함수를 정적 함수로 선언할 수 있습니다.
이것을 보여주는 예는 다음과 같습니다 -
first_file.c와 second_file.c라는 두 개의 파일이 있습니다. 이 파일의 내용은 다음과 같습니다 -
first_file.c
의 내용static void staticFunc(void) { printf("Inside the static function staticFunc() "); }
second_file.c
의 내용int main() { staticFunc(); return 0; }
이제 위의 코드가 컴파일되면 "staticFunc()에 대한 정의되지 않은 참조"라는 오류가 발생합니다. 이것은 staticFunc() 함수가 정적 함수이고 객체 파일에서만 볼 수 있기 때문에 발생합니다.
C에서 정적 함수를 보여주는 프로그램은 다음과 같습니다 -
예
#include <stdio.h> static void staticFunc(void){ printf("Inside the static function staticFunc() "); } int main() { staticFunc(); return 0; }
출력
위 프로그램의 출력은 다음과 같습니다 -
Inside the static function staticFunc()
위 프로그램에서 staticFunc() 함수는 "Inside static function staticFunc()"를 출력하는 정적 함수입니다. main() 함수는 staticFunc()를 호출합니다. 이 프로그램은 정적 함수가 자체 개체 파일에서만 호출되므로 올바르게 작동합니다.