Рубрики

Статические функции в C

Условие: статические переменные в C

В C функции являются глобальными по умолчанию. Ключевое слово « static » перед именем функции делает его статическим. Например, ниже функция fun () является статической.

static int fun(void)

{

  printf("I am a static function ");

}

В отличие от глобальных функций в C, доступ к статическим функциям ограничен файлом, в котором они объявлены. Поэтому, когда мы хотим ограничить доступ к функциям, мы делаем их статическими. Другой причиной создания статических функций может быть повторное использование одного и того же имени функции в других файлах.

Например, если мы храним следующую программу в одном файле file1.c

/ * Внутри file1.c * / 

static void fun1(void)

{

  puts("fun1 called");

}

И сохраните следующую программу в другом файле file2.c

/ * Iinside file2.c * / 

int main(void)

{

  fun1(); 

  getchar();

  return 0;  

}

Теперь, если мы скомпилируем приведенный выше код с помощью команды « gcc file2.c file1.c », мы получим ошибку «неопределенная ссылка на« fun1 »» . Это потому, что fun1 () объявлен как статический в file1.c и не может использоваться в file2.c .

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное в приведенной выше статье или хотите поделиться дополнительной информацией о статических функциях в C.

Рекомендуемые посты:

Статические функции в C

0.00 (0%) 0 votes