Funciones estáticas en C

Requisito previo: variables estáticas en C

En C, las funciones son globales por defecto. La palabra clave » estática » antes del nombre de una función la convierte en estática. Por ejemplo, la siguiente función fun() es estática.

static int fun(void)
{
  printf("I am a static function ");
}

A diferencia de las funciones globales en C, el acceso a las funciones estáticas está restringido al archivo donde se declaran. Por lo tanto, cuando queremos restringir el acceso a las funciones, las hacemos estáticas. Otra razón para hacer que las funciones sean estáticas puede ser la reutilización del mismo nombre de función en otros archivos.

Por ejemplo, si almacenamos el siguiente programa en un archivo file1.c

/* Inside file1.c */ 
static void fun1(void)
{
  puts("fun1 called");
}

Y almacene el siguiente programa en otro archivo file2.c

/* Inside file2.c  */ 
int main(void)
{
  fun1(); 
  getchar();
  return 0;  
}

Ahora, si compilamos el código anterior con el comando » gcc file2.c file1.c «, obtenemos el error «referencia indefinida a `fun1′» . Esto se debe a que fun1() se declara static en file1.c y no se puede usar en file2.c .

Escriba comentarios si encuentra algo incorrecto en el artículo anterior o si desea compartir más información sobre las funciones estáticas en C.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *