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 ;
3esperar 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 .
4Utilice la variable en la función como lo haría con cualquier otro .
5Recuerde 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
6Uso 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.
7Utilice 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.
8Utilice 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.