Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C의 정적 함수


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()를 호출합니다. 이 프로그램은 정적 함수가 자체 개체 파일에서만 호출되므로 올바르게 작동합니다.