TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Armazenamento De Memoria

Ensaios: Armazenamento De Memoria. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  3/11/2014  •  398 Palavras (2 Páginas)  •  228 Visualizações

Página 1 de 2

Armazenamento de memoria

Todas as variáveis e funções C tem um tipo de classe de armazenamento. A classe de armazenamento de uma variável determina em qual momento será criada e em qual será destruida (liberada da memória), em quais pontos do programa poderá ser acessada, em que parte da memória será armazenada e qual será seu valor inicial.

São quatro as classes de armazenamento em C:

- Auto, extern, static e register.

A classe auto é usada para especificar uma variável automática, mas não é necessária, visto que a classe auto é padrão.

A classe extern ao contrario das variáveis automáticas, declaradas dentro das funções, as variáveis são declaradas fora de qualquer função. O acesso de uma classe extern é permitido a todas as funções do programa. A palavra extern não é usada para criar variáveis da classe extern e sim para informar ao compilador que a variável em questão foi criada em outro programa.

A classe static se assemelha as classes automáticas, porque são conhecidas somente das funções que as declaram, e por outro, se assemelham as externas, uma vez que mantem seus valores mesmo quando a função termina.

A classe register indica que, se possível, a variável associada deve ser guardada fisicamente numa memoria de acesso mais rápido chamada registrador. Um registrador da maquina é um espaço no qual podemos armazenar um int ou char. Em outras palavras, as variáveis da classe register são semelhantes as automaticas, mas se aplicam apenas as variáveis do tipo int e char.

Exemplo de alocação de memoria:

Código fonte

#include <stdio.h>

#include <stdlib.h>

unsigned randn (void);

void inits (int n);

main()

{

int i;

int s;

printf("digite a sua semente: ");

scanf("%d", & s);

inits(s);

for(i=0; i<5; i++)

printf("%d\n", randn());

system("PAUSE");

return 0;

}

static int semente;

unsigned randn()

{

static unsigned semente = 1;

semente = (semente*25173 + 13849)%65536;

return semente;

}

void inits (int n)

{

semente=n;

}

...

Baixar como (para membros premium)  txt (2.1 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com