ubiquitour.com

Cómo declarar una Variable estática en C

Las variables estáticas son una parte útil de C. Te dan flexibilidad en la fabricación de las funciones que devuelven datos más complejos, pero pueden ser difíciles de entender y usar eficazmente.

Instrucciones

Declarar una Variable estática

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

2 Declarar una variable estática utilizando la misma sintaxis para declarar una variable local normal, pero preceden a la declaración con la palabra estática, así como:

Static int suma = 0;

3 Esperar la inicialización a pasar sólo la primera vez que llame a la función. Tiempos posteriores, el valor anterior todavía estará allí. Si se omite la inicialización, se inicializará automáticamente a 0.

4 Utilice la variable en la función como lo haría cualquier otro.

5 Recuerde que, como cualquier otra variable local, una variable estática no se hace referencia a fuera de la función. Sin embargo, si pasa un puntero a él, el puntero puede ser elimina 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 de tener su propia memoria que lleva más 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 internamente seguimiento de donde está en el archivo.

7 Utilizar una variable estática para proporcionar un pedazo de memoria para almacenar un resultado así. Por ejemplo, una función para concatenar cadenas podría utilizar una variable estática para almacenar el resultado de la concatenación y devolver un puntero a él. Memoria de la variable estática está constantemente disponible, pero se liberarán automáticamente cuando el programa termina, al igual que cualquier otra variable local.

8 Utilizar variables estáticas de una acumulación de la corriente total o similar. Considere este ejemplo:

int running_total (int num) {}Static int suma = 0;suma += num;devolver la suma;} Cada vez que llame a esta función, mantiene y devuelve un total de todos los números pasados en él.

Consejos y advertencias

  • Uso de variables estáticas para no tener que pasar una variable a la función de C sin razón que para actualizar y mantener su valor.
  • Tenga cuidado de los efectos secundarios cuando es devolver un puntero a la variable estática. Si llama a la función varias veces, el resultado de cada uno se sobrescribe durante la siguiente.
  • Es peligroso utilizar un puntero a la variable estática como un parámetro a la función. Por ejemplo, una función para concatenar cadenas, no intente concatenar algo al resultado de un encadenamiento anterior!