Programación en C

Programación estática en C

Programación estática en C
En este tutorial, explicaremos la palabra clave estática aplicándola en variables y funciones. Static es una palabra clave utilizada en la programación en C y se puede aplicar mediante la siguiente sintaxis:

tipo de datos nombre de variable estático

Variables locales estáticas

Cuando una variable en una función es estática, la variable conserva su valor entre las llamadas a la función.

//Ejemplo 1.C
#incluir
int fun1 ()

int count = 0;
contar ++;
recuento de devoluciones;

int fun2 ()

cuenta int estática = 0;
contar ++;
recuento de devoluciones;

int main ()

printf ("fun1 1st call devuelve:% d \ n", fun1 ());
printf ("fun1 2nd call devuelve:% d \ n \ n", fun1 ());
printf ("fun2 1st call devuelve:% d \ n", fun2 ());
printf ("fun2 2nd call devuelve:% d \ n", fun2 ());
return 0;


En el ejemplo 1.c, tenemos dos funciones: fun1 () y fun2 (). En fun1 (), declaramos una variable (cuenta) y la inicializamos a 0. Luego, incrementamos la variable de conteo y devolvemos el valor resultante. Utilizando principal(), nosotros llamamos fun1 () dos veces, y cada vez, se devuelve un valor de 1 porque la variable de recuento se borra cuando la llamada a fun1 () esta completado. En fun2 () declaramos la variable de recuento como una variable estática. Por tanto, su valor se conserva. Utilizando principal(), nosotros llamamos fun2 () dos veces: la primera vez, se devuelve un valor de 1, y la segunda vez, se devuelve un valor de 2.

Variables globales estáticas

Una variable global estática se comporta de la misma forma que otras variables globales, pero no se puede acceder a ella desde otro programa en C.

Funciones estáticas

En C, las funciones son globales por defecto. Sin embargo, si declaramos una función estática, entonces la función es local y no se puede acceder desde otro programa en C.

Inicialización de variables estáticas

Si una variable estática no se inicializa explícitamente, se inicializa como 0.

// Ejemplo2.C
#incluir
int main ()

static int i;
printf ("Valor de i:% d \ n", i);
return 0;


En Example2.c, declaramos una variable estática i que no está inicializada. Sin embargo, debido a que la variable es estática, se inicializa automáticamente a 0.

Es importante notar que una variable estática debe ser inicializada por un literal constante; no podemos usar el valor de retorno de una función para inicializar una variable estática.

// Ejemplo3.C
#incluir
int fun1 ()

return 5;

int main ()

static int i = fun1 ();
printf ("Valor de i:% d \ n", i);
return 0;


En Example3.c, intentamos inicializar una variable estática usando el valor de retorno de fun1 (). Sin embargo, como puede ver, se devuelve un error cuando se compila el código.

Resumen

La vida útil de una variable estática y la vida útil del programa son iguales.

Si una variable estática no se inicializa, tomará un valor predeterminado de 0.

No se puede acceder a una variable estática global ni a una función estática desde un programa que no sea aquel en el que se definió.

Cómo invertir la dirección de desplazamiento del mouse y los paneles táctiles en Windows 10
Ratón y Panel táctils no solo facilitan la informática, sino que también hacen que sea más eficiente y requieran menos tiempo. No podemos imaginar una...
Cómo cambiar el tamaño, el color y el esquema del puntero del mouse y del cursor en Windows 10
El puntero y el cursor del mouse en Windows 10 son aspectos muy importantes del sistema operativo. Esto también se puede decir de otros sistemas opera...
Motores de juegos gratuitos y de código abierto para desarrollar juegos de Linux
Este artículo cubrirá una lista de motores de juegos de código abierto y gratuitos que se pueden usar para desarrollar juegos 2D y 3D en Linux. Existe...