Como fazer Variáveis estáticas em C Programming
Na programação C, variáveis utilizadas dentro de uma função são local para essa função: Seus valores são usados e, em seguida, descartados quando a função é feito. Não me dê Não Estático demonstra o conceito.
NÃO DÊ-ME NO ESTÁTICO
#include vazio proc (void) main () {-int puts ( "primeira chamada") - proc () - puts ( "Second chamada") - proc () - retorno (0) -} vazio proc (void) {int a-printf ( "O valor da variável a é% d n", a) -printf ( "Enter um novo valor:") -scanf ( "% d", a) -}
Em Do not Give Me No Estático, variável uma na função proc () não manter o seu valor. A variável é inicializada apenas pela função scanf () na Linha 20. Caso contrário, a variável contém informações lixo.
USANDO typedef Para definir uma estrutura
typedef struct {char id primeira [20] -char última [20] -} personal-typedef data struct {int mês-int dia-int ano-} humana {aniversário pessoal name-calendário -} calendário-estrutura -
Exercício 1: Criar e executar um novo projeto usando o código fonte a partir de Utilização typedef para definir uma estrutura.
Ele saída parecida com esta:
primeiro valor callThe da variável A é 0Enter um novo valor: valor 6Second callThe da variável A é 0Enter um novo valor: 6
Apesar de todas as tentativas de atribuir 6 a variável uma, o programa sempre se esquece. Tanto para isso. Ou é?
Exercício 2: Modificar o código fonte a partir de Utilização typedef para definir uma estrutura, edição de linha de 16 para ler:
static int a-
Criar e executar para testar a saída.
primeiro valor callThe da variável A é 0Enter um novo valor: valor 6Second callThe da variável A é 6Enter um novo valor: 5
Como a variável foi declarada como estática, o seu valor é retido entre chamadas de função.
Você não tem nenhuma necessidade de declarar variáveis como estático, a menos que você precisa seus valores retidos cada vez que a função é chamada, e esta situação surge de tempos em tempos. Mas antes acreditando ser uma cura mágica, também considerar a criação de variáveis globais.
Variáveis retornado de uma função não precisa ser declarado estático. Quando você retornar uma variável, como
retornar (a) -
apenas o valor da variável é devolvido, e não a própria variável.