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 */ .... |