Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C - Kelas Penyimpanan

Kelas penyimpanan mendefinisikan ruang lingkup (visibilitas) dan masa pakai variabel dan/atau fungsi dalam Program C. Mereka mendahului jenis yang mereka modifikasi. Kami memiliki empat kelas penyimpanan yang berbeda dalam program C −

Kelas Penyimpanan otomatis

otomatis kelas penyimpanan adalah kelas penyimpanan default untuk semua variabel lokal.

{
   int mount;
   auto int month;
}

Contoh di atas mendefinisikan dua variabel dengan kelas penyimpanan yang sama. 'auto' hanya dapat digunakan dalam fungsi, yaitu variabel lokal.

Kelas Penyimpanan register

daftar kelas penyimpanan digunakan untuk mendefinisikan variabel lokal yang harus disimpan dalam register alih-alih RAM. Ini berarti bahwa variabel memiliki ukuran maksimum yang sama dengan ukuran register (biasanya satu kata) dan tidak dapat menerapkan operator '&' unary (karena tidak memiliki lokasi memori).

{
   register int  miles;
}

Register hanya boleh digunakan untuk variabel yang memerlukan akses cepat seperti penghitung. Perlu juga dicatat bahwa mendefinisikan 'register' tidak berarti bahwa variabel akan disimpan dalam register. Artinya, MUNGKIN disimpan dalam register tergantung pada perangkat keras dan batasan implementasi.

Kelas Penyimpanan statis

statis kelas penyimpanan menginstruksikan kompiler untuk menjaga variabel lokal tetap ada selama masa hidup program alih-alih membuat dan menghancurkannya setiap kali masuk dan keluar dari ruang lingkup. Oleh karena itu, membuat variabel lokal menjadi statis memungkinkan mereka untuk mempertahankan nilainya di antara pemanggilan fungsi.

Pengubah statis juga dapat diterapkan ke variabel global. Ketika ini dilakukan, itu menyebabkan ruang lingkup variabel itu dibatasi ke file di mana ia dideklarasikan.

Dalam pemrograman C, ketika statis digunakan pada variabel global, ini menyebabkan hanya satu salinan anggota tersebut yang dibagikan oleh semua objek kelasnya.

Demo Langsung
#include <stdio.h>
 
/* function declaration */
void func(void);
 
static int count = 5; /* global variable */
 
main() {

   while(count--) {
      func();
   }
	
   return 0;
}

/* function definition */
void func( void ) {

   static int i = 5; /* local static variable */
   i++;

   printf("i is %d and count is %d\n", i, count);
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

i is 6 and count is 4
i is 7 and count is 3
i is 8 and count is 2
i is 9 and count is 1
i is 10 and count is 0

Kelas Penyimpanan eksternal

eksternal kelas penyimpanan digunakan untuk memberikan referensi variabel global yang terlihat oleh SEMUA file program. Saat Anda menggunakan 'extern', variabel tidak dapat diinisialisasi, namun ini menunjukkan nama variabel di lokasi penyimpanan yang telah ditentukan sebelumnya.

Bila Anda memiliki banyak file dan Anda menentukan variabel atau fungsi global, yang juga akan digunakan di file lain, maka extern akan digunakan dalam file lain untuk memberikan referensi variabel atau fungsi yang ditentukan. Hanya untuk pemahaman, luar digunakan untuk mendeklarasikan variabel atau fungsi global dalam file lain.

Pengubah eksternal paling sering digunakan ketika ada dua atau lebih file yang berbagi variabel atau fungsi global yang sama seperti yang dijelaskan di bawah ini.

File Pertama:main.c

#include <stdio.h>
 
int count ;
extern void write_extern();
 
main() {
   count = 5;
   write_extern();
}

File Kedua:support.c

#include <stdio.h>
 
extern int count;
 
void write_extern(void) {
   printf("count is %d\n", count);
}

Di sini, luar sedang digunakan untuk mendeklarasikan menghitung di file kedua, di mana definisinya ada di file pertama, main.c. Sekarang, kompilasi kedua file ini sebagai berikut

$gcc main.c support.c

Ini akan menghasilkan program yang dapat dieksekusi a.out . Ketika program ini dijalankan, menghasilkan hasil sebagai berikut

count is 5

Bahasa C

  1. Kelas dan Objek C++
  2. Fungsi teman C++ dan Kelas teman
  3. Kelas Penyimpanan C
  4. Struktur dan kelas dalam C++
  5. Python String count() dengan CONTOH
  6. Daftar Python count() dengan CONTOH
  7. Java - Objek dan Kelas
  8. Kelas Penyimpanan di C++
  9. Antarmuka dalam C++ (Kelas Abstrak)
  10. C# - Kelas