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

Kelas Penyimpanan di C:auto, extern, static, register class di C

Apa itu Kelas Penyimpanan di C?

Kelas penyimpanan mewakili visibilitas dan lokasi variabel. Ini memberitahu dari bagian kode mana kita dapat mengakses variabel. Kelas penyimpanan di C digunakan untuk menggambarkan hal-hal berikut:

Jadi kelas penyimpanan digunakan untuk mewakili informasi tentang variabel.

CATATAN:Variabel tidak hanya terkait dengan tipe data, nilainya, tetapi juga kelas penyimpanan.

Ada total empat jenis kelas penyimpanan standar. Tabel di bawah menunjukkan kelas penyimpanan di C.

Kelas penyimpanan Tujuan otomatis Ini adalah kelas penyimpanan default.eksternal Ini adalah variabel global.statis Ini adalah variabel lokal yang mampu mengembalikan nilai bahkan ketika kontrol ditransfer ke pemanggilan fungsi.register Ini adalah variabel yang disimpan di dalam Register.

Dalam tutorial C ini, Anda akan mempelajari berbagai jenis kelas penyimpanan dalam C dengan contoh-

Kelas Penyimpanan Otomatis di C

Variabel yang didefinisikan menggunakan kelas penyimpanan otomatis disebut sebagai variabel lokal. Auto adalah singkatan dari kelas penyimpanan otomatis. Sebuah variabel berada di kelas penyimpanan otomatis secara default jika tidak ditentukan secara eksplisit.

Cakupan variabel otomatis dibatasi dengan blok tertentu saja. Setelah kontrol keluar dari blok, akses dihancurkan. Ini berarti hanya blok di mana variabel otomatis dideklarasikan yang dapat mengaksesnya.

Kata kunci auto digunakan untuk menentukan kelas penyimpanan otomatis. Secara default, variabel otomatis berisi nilai sampah.

Example, auto int age;

Program di bawah ini mendefinisikan sebuah fungsi dengan memiliki dua variabel lokal

int add(void) {
   int a=13;
   auto int b=48;
return a+b;}

Kami mengambil program lain yang menunjukkan tingkat cakupan "tingkat visibilitas" untuk variabel otomatis di setiap kode blok yang independen satu sama lain:

#include <stdio.h>
int main( )
{
  auto int j = 1;
  {
    auto int j= 2;
    {
      auto int j = 3;
      printf ( " %d ", j);
    }
    printf ( "\t %d ",j);
  }
  printf( "%d\n", j);}

KELUARAN:

 3 2 1

Kelas Penyimpanan Eksternal di C

Extern adalah singkatan dari kelas penyimpanan eksternal. Kelas penyimpanan eksternal digunakan ketika kita memiliki fungsi atau variabel global yang dibagi antara dua atau lebih file.

Kata kunci eksternal digunakan untuk mendeklarasikan variabel global atau fungsi dalam file lain untuk memberikan referensi variabel atau fungsi yang telah didefinisikan dalam file asli.

Variabel yang didefinisikan menggunakan kata kunci eksternal disebut sebagai variabel global. Variabel-variabel ini dapat diakses di seluruh program. Perhatikan bahwa variabel eksternal tidak dapat diinisialisasi, variabel tersebut telah didefinisikan dalam file aslinya.

Example, extern void display();

File Pertama:main.c

#include <stdio.h>
extern i;
main() {
   printf("value of the external integer is = %d\n", i);
   return 0;}

File Kedua:original.c

#include <stdio.h>
i=48;

Hasil:

 value of the external integer is = 48


Untuk mengkompilasi dan menjalankan kode di atas, ikuti langkah-langkah di bawah ini

Langkah 1) Buat proyek baru,

  1. Pilih Aplikasi Konsol
  2. Klik Buka

Langkah 2) Pilih C dan klik Berikutnya

Langkah 3) Klik Berikutnya

Langkah 4) Masukkan detail dan klik Berikutnya

Langkah 5) Klik Selesai

Langkah 6) Letakkan kode utama seperti pada program sebelumnya di file main.c dan simpan

Langkah 7) Buat file C baru [File -> new -> Empty File , simpan (sebagai original.c ) dan tambahkan ke proyek saat ini dengan mengklik “OK” di kotak dialog .

Langkah 8) Letakkan dan simpan kode C dari file original.c yang ditunjukkan pada contoh sebelumnya tanpa fungsi main().

Langkah 9) Bangun dan jalankan proyek Anda. Hasilnya ditunjukkan pada gambar berikutnya

Kelas Penyimpanan Statis di C

Variabel statis digunakan dalam fungsi/file sebagai variabel statis lokal. Mereka juga dapat digunakan sebagai variabel global

Example: static int count = 10;

Perlu diingat bahwa variabel statis memiliki nilai awal default nol dan diinisialisasi hanya sekali seumur hidupnya.

#include <stdio.h> /* function declaration */
void next(void);
static int counter = 7; /* global variable */
main() {
 while(counter<10) {
      next();
      counter++;   }
return 0;}
void next( void ) {    /* function definition */
   static int iteration = 13; /* local static variable */
   iteration ++;
   printf("iteration=%d and counter= %d\n", iteration, counter);}

Hasil:

iteration=14 and counter= 7
iteration=15 and counter= 8
iteration=16 and counter= 9

Variabel global dapat diakses di seluruh file sedangkan variabel statis hanya dapat diakses oleh bagian kode tertentu.

Umur variabel statis ada di seluruh kode program. Variabel yang dideklarasikan atau diinisialisasi menggunakan kata kunci statis selalu berisi nol sebagai nilai default.

Daftarkan Kelas Penyimpanan di C

Anda dapat menggunakan kelas penyimpanan register ketika Anda ingin menyimpan variabel lokal di dalam fungsi atau blok di register CPU alih-alih RAM untuk memiliki akses cepat ke variabel-variabel ini. Misalnya, “penghitung” adalah kandidat yang baik untuk disimpan dalam register.

Example: register int age;

Kata kunci daftar digunakan untuk mendeklarasikan kelas penyimpanan register. Variabel yang dideklarasikan menggunakan kelas penyimpanan register memiliki umur sepanjang program.

Ini mirip dengan kelas penyimpanan otomatis. Variabel terbatas pada blok tertentu. Satu-satunya perbedaan adalah bahwa variabel yang dideklarasikan menggunakan kelas penyimpanan register disimpan di dalam register CPU alih-alih memori. Register memiliki akses yang lebih cepat daripada memori utama.

Variabel yang dideklarasikan menggunakan kelas penyimpanan register tidak memiliki nilai default. Variabel ini sering dideklarasikan di awal program.

#include <stdio.h> /* function declaration */
main() {
{register int  weight;
int *ptr=&weight ;/*it produces an error when the compilation occurs ,we cannot get a memory location when dealing with CPU register*/}
}

KELUARAN:

error: address of register variable 'weight' requested

Tabel berikut merangkum fitur utama dari setiap kelas penyimpanan yang umum digunakan dalam pemrograman C

Kelas Penyimpanan Deklarasi Penyimpanan Nilai Awal Default Cakupan Seumur Hidup otomatis Di dalam fungsi/blockMemoryUnpredictableDalam fungsi/blokDalam fungsi/blokregister Di dalam fungsi/blokCPU MendaftarSampahDidalam fungsi/blokDalam fungsi/blokeksternal Di luar semua fungsiMemoryZeroSeluruh file dan file lain di mana variabel dideklarasikan sebagai externprogram runtimeStatis (lokal) Di dalam function/blockMemoryZeroDalam runtime function/blockprogramStatis (global) Di luar semua fungsiMemoryZeroGlobalprogram runtime

Ringkasan

Dalam tutorial ini kita telah membahas kelas penyimpanan di C, untuk meringkas:


Bahasa C

  1. C# Kelas dan Objek
  2. C# Kata Kunci statis
  3. C# Kelas Bersarang
  4. Kelas dan Objek C++
  5. Fungsi teman C++ dan Kelas teman
  6. Template Kelas C++
  7. Kelas Penyimpanan C
  8. C - Kelas Penyimpanan
  9. Kelas Penyimpanan di C++
  10. Antarmuka dalam C++ (Kelas Abstrak)