UC3M

Grado en Ing. Telemática/Sist. Audiovisuales/Sist. de Comunicaciones

Arquitectura de Sistemas

Septiembre 2017 - Enero 2018

4.4. Funciones estáticas

La definición de una función puede tener el prefijo static. Cuando una función se declara como estática, tan sólo puede ser invocada desde el fichero en el que está definida. Este mecanismo, por tanto, puede interpretarse como una forma primitiva de restringir el acceso a una función, pero dista mucho del mecanismo de tres niveles (público, privado y protegido) presente en Java.

Cuando se desarrollan aplicaciones de gran tamaño, se suelen establecer políticas para el uso de prototipos. Por ejemplo, para poder invocar cualquier función en cualquier parte del código de un fichero, se suelen colocar al comienzo del mismo los prototipos de todas las funciones que contiene. El siguiente ejemplo muestra un ejemplo de esta política:

1
2
3
4
5
6
7
8
9
10
/* Funciones globales */
int function1(int p1, float p2, int table[], int size);
void function2();
struct data *function3(char *name, char* lastname, int status);
/* Funciones locales */
static void check(int table[], int size);
static struct data *duplicate(struct data *d1);

/* Definiciones */
....