Tecnología

Inicio

Cómo declarar una variable estática en C

Las variables estáticas son una parte útil de C. Ellos le dan la flexibilidad en la toma de funciones que devuelven datos más complejos, pero pueden ser difíciles de entender y utilizar de manera efectiva.

Instrucciones

Declarar una variable estática

1 Saben que las variables estáticas siempre se declaran dentro de una función C, pero a diferencia de otras variables, sus valores siguen existiendo y son retenidos, incluso después de que se cierra la función.

2 Declarar una variable estática utilizando la misma sintaxis que lo haría para declarar una variable local normal, pero preceder a la declaración con la palabra estática, de esta manera:

int suma estática = 0;

3 Esperar inicialización suceda sólo la primera vez que se llama a la función. tiempos posteriores, el valor anterior seguirán ahí. Si se omite la inicialización, automáticamente se inicializa a 0.

4 Utilice la variable en la función, como lo haría con cualquier otra.

5 Recuerde que, al igual que cualquier otra variable local, una variable estática no puede ser referido a fuera de la función. Sin embargo, si pasa un puntero a él, el puntero se puede eliminan las referencias con éxito, ya que todavía existe la variable.

Saber cuándo utilizar variables estáticas

6 Utilizar una variable estática para permitir que su función tiene su propia memoria que lleva de una llamada a otra. Por ejemplo, una función que obtiene y analiza la siguiente línea de un archivo puede ser que necesite para mantener internamente un seguimiento de dónde se encuentra en el archivo.

7 Utilice una variable estática como una manera de proporcionar una parte de memoria para almacenar un resultado. Por ejemplo, una función para concatenar cadenas podría usar una variable estática en la que almacenar el resultado de la concatenación y devolver un puntero a la misma. La memoria de la variable estática está constantemente disponible, pero será automáticamente liberado cuando el programa termina, al igual que cualquier otra variable local.

8 Utilice variables estáticas para una acumulación total o similar en funcionamiento. Considere este ejemplo:

int running_total (int num) {
int suma estática = 0;
suma + = num;
suma de regreso;
} Cada vez que se llama a esta función, se mantiene y devuelve un total acumulado de todos los números pasados ​​en ella.

Consejos y advertencias

  • Utilice variables estáticas para evitar tener que pasar una variable en la función C por ninguna otra razón que la de actualizar y mantener su valor.
  • Tenga cuidado con los efectos secundarios cuando se está devolviendo un puntero a la variable estática. Si se llama a la función varias veces, el resultado de cada una se sobrescribe durante la siguiente.
  • Es peligroso utilizar un puntero a la variable estática como parámetro a la función. Por ejemplo, en una función para concatenar cadenas, no trate de concatenar algo que el resultado de una concatenación anterior!