Funciones estáticas en el lenguaje informático C

Funciones estáticas en el lenguaje informático C
"Estática" es una palabra reservada en el lenguaje de la computadora, c. Es un especificador de clase de almacenamiento que se puede usar con funciones. Un programa C puede tener más de un archivo. Solo uno de los archivos debe tener la función C Main (). En este artículo solo se consideran dos archivos: el archivo con la función C Main () que se llama MainFile.c y el otro archivo sin la función principal que se llama otrofile.C

Función global

Una función global es una función definida en un archivo c antes de la función main (). Incluso la función Main () es una función global, pero la función Main () no es el foco en este artículo. En el lenguaje C, las funciones definidas por el programador suelen ser funciones globales y simplemente denominadas funciones.

Se puede llamar a una función global en cualquier alcance en su archivo. Para que se vea una función global en un archivo diferente, su prototipo debe declararse en ese archivo diferente (ver más abajo.) Para evitar que una función definida en un archivo se vea en un archivo diferente, precede a la definición con la palabra reservada, estática. Con eso, la función estática sería una función global solo en su propio archivo y no se verá en otro archivo.

Entonces, una función global definida en otro archivo.c se puede ver en cualquier lugar de otro archivo.C. Para que se vea en el archivo principal.c, su prototipo debe declararse en el archivo principal.C (ver más abajo.) Su definición en otro archivo.C no debe ser precedido por "estático". Para evitar que se vea en el archivo principal.c, su definición en otro archivo.c tiene que ser hecha staticRemed una coma al precedirla con la palabra, estática.

Este artículo ilustra la función estática en el lenguaje de la computadora, c comenzando con el significado del prototipo de funciones y su uso en un programa C de dos o más archivos.

Compilación de los archivos, MainFile.c y otros archivos.C, se puede hacer con el siguiente comando de terminal de bash:

GCC Mainfile.C Otrofile.temperatura C -O.exe

temperatura.exe es el nombre del archivo de ejecución único resultante.

Contenido del artículo

- Introducción - Ver arriba

- Prototipo de funciones C

- Función global

- Función estática adecuada

- Conclusión

Prototipo de funciones C

Considere la definición de función global:

char* fn1 (char* stri)
regresar stri;

El prototipo para esta función es:

char* fn1 (char* stri);

Es la firma de la función, que termina en Semicolon.

Ahora, deja que el contenido del otro archivo.C BE:

char* fn1 (char* stri)
regresar stri;

Suponga que el archivo, otro archivo.C solo tiene la definición de la función global, fn1 (). Ahora deje que el contenido del archivo, MainFile.c, be:

#incluir
char* fn1 (char* stri);
int main ()

char* str = fn1 ("visto");
printf ("%s \ n", str);
regresar 0;

Comienza con la inclusión del encabezado (biblioteca). Esto es seguido por la declaración prototipo de la función, fn () del otro archivo.

Este archivo principal no tiene la definición de ninguna función global que no sea la función Main () predeterminada (). En la función principal, la primera declaración llama a la función fn1 () definida en el otro archivo. Esta llamada no sería efectiva si el prototipo de FN1 () no se declarara en este archivo, MainFile.C.

Si el lector ha codificado los dos archivos anteriores, puede compilar el programa en un archivo ejecutable con el siguiente comando:

GCC Mainfile.C Otrofile.temperatura C -O.exe

Al presionar la tecla ENTER al final de la línea. La salida debe ser, "visto".

Función global

El archivo principal.El archivo C se puede modificar de la siguiente manera:

#incluir
char* fn1 (char* stri);
char* fn (char* st)
regresar st;

int main ()

char* str1 = fn1 ("visto");
printf ("%s \ n", str1);
char* str2 = fn ("global visto en su archivo.");
printf ("%s \ n", str2);
regresar 0;

Ahora, hay dos funciones globales en el archivo, MainFile.C. Los nombres de las funciones son fn () y main (). dfn () es una función global. Se ha visto en el alcance local de la función principal (), por una llamada. En el lenguaje C, una función global en el alcance global, como fn (), simplemente se conoce como una función. Además, la función global, fn1 () en el archivo, otrofile.c simplemente se menciona, en función.

Si los dos archivos se vuelven a compilarse en temperatura.exe, entonces las salidas serán:

visto

Global visto en su archivo.

NOTA: La definición de función para fn () también se puede hacer para verse en el otro archivo, otro archivo.C. Para lograr que tenga su declaración prototipo en otro archivo.C, como sigue:

char* fn (char* st);

Terminando con un punto y coma. Esta actividad se deja como un ejercicio para el lector.

Función estática adecuada

De la discusión anterior, se puede ver una función en cualquier alcance (en cualquier lugar) en su archivo. También se puede ver en un archivo diferente, para el mismo programa, si su prototipo se declara allí. Para evitar que la definición del archivo se vea en un archivo diferente, haga la definición estática precediéndolo con la palabra reservada, estática. Incluso si su prototipo se declara en el archivo diferente, aún no se verá en el archivo diferente. Los archivos del programa ni siquiera se compilarán. Para ilustrar esto, deje que el contenido del archivo, OtherFile.C BE:

Char estático* fn1 (char* stri)
regresar stri;

Este es el mismo contenido en el archivo, otrofile.c, como antes, pero con la palabra reservada anterior, estática. El contenido del archivo principal.el archivo c sigue siendo el mismo. Si se intenta compilar los archivos del programa con el comando,

GCC Mainfile.C Otrofile.temperatura C -O.exe

El compilador emitiría un mensaje de error, lo que significa que el programa no compiló. Incluso si la declaración del prototipo en el archivo diferente también está precedido por Static, los archivos del programa aún no se compilarán.

Conclusión

Una definición de función en el lenguaje C es una función global. Esta función se puede llamar (ver) en cualquier alcance en su archivo. Para que esta función se vea en un archivo diferente, como el archivo principal, su declaración prototipo debe escribirse en ese archivo diferente. Para evitar que esta función se vea en el archivo diferente, haga que su definición esté estática al precedirla con la palabra reservada, estática.