Zajęcia przechowywania w C

Zajęcia przechowywania w C
Zajęcia przechowywania są bardzo ważnym tematem w C. Jeśli opracowaliśmy naszą koncepcję w C, szczególnie na temat życia i zakresu jakiejkolwiek zmiennej, musimy wiedzieć o zajęciach przechowywania w C. W architekturze opartej na DOS lub 16-bitowej architekturze, takiej jak Turbo C ++ 3. 0, wymaga pamięci 2 bajtów. Ale w 32-bitowej lub 64-bitowej architekturze, takiej jak Dev C ++, bloki kodu i liczby całkowite pobierają pamięć 4 bajtów.

Trzy właściwości zmiennych

  1. Nazwa zmiennej.
  2. Rozmiar bloku pamięci.
  3. Rodzaj treści.

Inne właściwości zmiennej

Wartość domyślna, zakres, życie, przechowywanie.

Domyślna wartość: Jeśli nie zainicjujemy żadnej wartości do zmiennej w momencie deklaracji zmiennej, to jaka jest wartość zmiennej x? Wówczas wartość x nazywana jest wartością domyślną, która jest kolejną cechą zmiennej.

Składowanie: Przechowywanie oznacza, że ​​pamięć jest przydzielana dla zmiennej, RAM lub w rejestrze procesora.

Zakres: Ograniczenia lub obszary, w których możemy uzyskać dostęp do zmiennej

Życie: Rozpiętość między tworzeniem a niszczeniem zmiennej nazywa się życiem. Te 4 właściwości, które możemy zrozumieć w momencie deklarowania zmiennej.

W oświadczeniu deklaracji znajdują się 4 rodzaje przechowywania.

  1. Automatyczny
  2. Rejestr
  3. Statyczny
  4. Zewnętrzny
Klasa przechowywania Słowo kluczowe Domyślna wartość Składowanie Zakres Życie
1. Automatyczny automatyczny Śmieci Baran Ograniczone do bloków, w których jest zadeklarowane Aż do wykonania bloku, w którym jest on zadeklarowany
2. Rejestr rejestr Śmieci rejestr To samo To samo
3. Statyczny statyczny 0 (zero) Baran To samo Do końca programu
4. Zewnętrzny zewnętrzny 0 (zero) Baran Światowy To samo

Automatyczny program klasy pamięci

Przykład programowania 1

#włączać
int main ()

// domyślnie zmienna automatyczna;
int x = 5;
printf („%d \ n”, x);

int x = 2;
printf („%d \ n”, x);

printf („%d \ n”, x);
powrót 0;

Wyjście

Wyjaśnienie

Z symbolem strzałki możemy napisać automatyczne słowo kluczowe, aby zmienna automatyczna. Jeśli nic tam nie napiszemy, zmienna jest typem automatycznym (domyślnie). Zasada jest nadawanie wyższego priorytetu zmiennej lokalnej, jeśli nazwa dwóch zmiennych wewnątrz funkcji jest taka sama.

Zarejestruj program klasy pamięci

Przykład programowania 2

#włączać
int main ()

// Słowo kluczowe rejestru jest używane;
rejestr int x = 4;
int y;
y = x ++;
X--;
y = x+5;
printf („ %d %d”, x, y);
powrót 0;

Wyjście

Wyjaśnienie

Jeśli w programie niektóre zmienne są używane wielokrotnie, w takim przypadku przechowujemy zmienną X wewnątrz rejestru procesora zamiast pamięci RAM. Skróca czas przetwarzania naszego programu, ale ma zastosowanie tylko INT i Char Mean Mała pamięć czarna. Jeśli rejestr nie jest dostępny, automatycznie przekształca klasę magazynu rejestru w klasę automatyczną.

Program klasy statycznej

Przykład programowania 3

#włączać
void f1 ();
int main ()

f1 ();
f1 ();
powrót 0;

void f1 ()

int i = 0;
i ++;
printf ("i =%d \ n", i);

Wyjście

Wyjaśnienie

Tutaj otrzymujemy wynik dwa 1, ponieważ deklarujemy zmienną domyślnie auto.

Przykład programowania 4

#włączać
void f1 ();
int main ()

f1 ();
f1 ();
powrót 0;

void f1 ()

// Zmienna statyczna jest zadeklarowana;
static int i = 0;
i ++;
printf ("i =%d \ n", i);

Wyjście

Wyjaśnienie

Ponieważ jest to zmienna statyczna, zmienna ta nie jest niszczona z ciała F1. Tak więc, gdy F1 () nazywa się 2. raz, wyjście wyniesie 2.

Zewnętrzna klasa pamięci

Przykład programowania 5

#włączać
int x;
int main ()

// zewnętrzne jest zadeklarowane;
extern int x;
printf („x =%d”, x);
void f1 (void);
f1 ();
printf („x =%d”, x);
powrót 0;

void f1 ()

x ++;
printf („x =%d”, x);

Wyjście

Wyjaśnienie

Ponieważ jest to zmienna globalna, zmienna jest dostępna z dowolnego miejsca w programie, a jej życie jest w całym programie.1st printf () funkcja drukuj wartość x = 0, ponieważ jej wartość domyślna = 0, a następnie f1 () wywołuje, a następnie x jest zwiększane do 1 i wydrukuj wartość 1. Następnie kontrola ponownie trafia do funkcji Main () po F1 () i ponownie drukuje wartość x.

Przykład programowania 6

#włączać
int x;
void f1 ();
int main ()

extern int x;
printf ("x =%d \ n", x);
f1 ();
printf ("x =%d \ n", x);
powrót 0;

void f1 ()

int x = 5;
x ++;
printf ("x =%d \ n", x);

Wyjście

Wyjaśnienie

Ponieważ zmienna x w funkcji f1 () jest zmienną automatyczną, jest dostępna tylko w F1 ().Tak więc tutaj funkcja printf () drukuj wartość x = 5, ale w funkcji main () x A jest traktowane jako zmienna zewnętrzna, ponieważ x jest deklarowane jako globalne. Więc drukuje wartość x = 0.

Gdzie deklarujemy słowo kluczowe zewnętrzne?

Zmienna zewnętrzna jest zadeklarowana poza dowolną funkcją. Ale oznacza, że ​​zmienna jest zewnętrzna wewnątrz głównej funkcji, jak pokazano w tym przykładzie, lub jest oznaczona w dowolnym miejscu w programie.

Wniosek

Z wyżej wymienionej koncepcji klas pamięci językowej C, czytelnik jasno jest, że za każdym razem, gdy zarządzamy danymi za pośrednictwem oprogramowania, potrzebujemy przestrzeni zmiennej lub pamięci do przechowywania danych. Mamy teraz jasny pomysł z tego artykułu o tym, jak dane mają być przechowywane w zmiennej.