Las variables estáticas son una parte útil de C. Te dan flexibilidad en la toma de funciones que devuelven datos más complejos , pero pueden ser difíciles de comprender y utilizar con eficacia. Instrucciones
Declarar una variable estática
página 1
Sepan que siempre variables estáticas se declaran dentro de una función C, pero a diferencia de otras variables , los valores siguen existiendo y se mantienen , incluso después de la función termina .
2
declara una variable estática usando la misma sintaxis que lo haría para declarar una variable local normal, pero preceden a la declaración con la palabra estática , así:
static int suma = 0 ;
3 esperar inicialización ocurra 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 otro .
5
Recuerde que , al igual que cualquier otra variable local , una variable estática no se puede hacer referencia a fuera de la función . Sin embargo , si se pasa un puntero a él , el puntero se eliminan las referencias con éxito , ya que todavía existe la variable.
Saber cuándo usar variables estáticas
6
Uso una variable estática para permitir que su función tiene 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 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 pieza de memoria para almacenar un resultado . Por ejemplo , una función para concatenar cadenas podría utilizar una variable estática en la que almacenar el resultado de la concatenación y devolver un puntero a él . La memoria de la variable estática es siempre disponible , pero automáticamente se libera cuando finaliza el programa , al igual que cualquier otra variable local.
8
Utilice variables estáticas para un total acumulado o similar que se ejecute . Considere este ejemplo:
running_total int (int num) {static int suma = 0 ; suma + = num; suma return;} Cada vez que se llama a esta función , mantiene y devuelve el total acumulado de todos los números pasados en ella.