6.14 Variables static


Se pueden definir variables que tengan ámbito local pero existencia permanente.
Para declararlas se utiliza la palabra static.

static declaración;

Por ejemplo, si se declara una variable static dentro de una función, aunque la función retorne la variable permanece con el último valor que se asignó:

int contador (void)
{
	static int cuenta = 0;
	return cuenta++;
}

Esta función devuelve un número que se va incrementando cada vez que se la llama. La variable cuenta es local a la función contador, pero no desaparece con la salida de la función.
NOTA: la inicialización de una variable static se realiza una sola vez, al comienzo de la ejecución del programa. Por eso el ejemplo anterior funciona ( cuenta se inicializa a cero una sola vez).