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 menjelaskan hal-hal berikut:
- Ruang lingkup variabel.
- Lokasi penyimpanan variabel.
- Nilai variabel yang diinisialisasi.
- Variabel seumur hidup.
- Siapa yang dapat mengakses variabel?
Jadi kelas penyimpanan digunakan untuk mewakili informasi tentang variabel.
CATATAN: Variabel tidak hanya terkait dengan tipe data, nilainya tetapi juga kelas penyimpanan.
Ada empat jenis kelas penyimpanan standar. Tabel di bawah ini mewakili kelas penyimpanan di C.
Kelas penyimpanan | Tujuan |
mobil | Ini adalah kelas penyimpanan default. |
eksternal | Ini adalah variabel global. |
statis | Ini adalah variabel lokal yang mampu mengembalikan nilai bahkan ketika kontrol dipindahkan ke pemanggilan fungsi. |
daftar | Ini adalah variabel yang disimpan di dalam Register. |
Dalam tutorial C ini, Anda akan mempelajari berbagai jenis kelas penyimpanan di C dengan contoh-
- Kelas Penyimpanan Otomatis di C
- Kelas Penyimpanan Eksternal di C
- File Pertama: main.c
- File Kedua: original.c
- Kelas Penyimpanan Statis di C
- Daftarkan Kelas Penyimpanan di C
Kelas Penyimpanan Otomatis di C
Variabel yang ditentukan menggunakan kelas penyimpanan otomatis disebut sebagai variabel lokal. Auto adalah singkatan dari kelas penyimpanan otomatis. Variabel berada dalam kelas penyimpanan otomatis secara default jika tidak ditentukan secara eksplisit.
Cakupan variabel otomatis dibatasi hanya dengan blok tertentu. Setelah kontrol keluar dari blok, akses dimusnahkan. Ini berarti hanya blok di mana variabel otomatis dideklarasikan yang dapat mengaksesnya.
Kata kunci otomatis digunakan untuk menentukan kelas penyimpanan otomatis. Secara default, variabel otomatis berisi nilai sampah.
Example, auto int age;
Program di bawah ini mendefinisikan 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 secara independen satu sama lain:
#includeint 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 extern digunakan untuk mendeklarasikan variabel atau fungsi global pada file lain untuk memberikan referensi variabel atau fungsi yang telah didefinisikan pada file aslinya.
Variabel yang ditentukan menggunakan kata kunci eksternal disebut sebagai variabel global. Variabel ini dapat diakses di seluruh program. Perhatikan bahwa variabel extern tidak dapat diinisialisasi itu sudah didefinisikan dalam file asli.
Example, extern void display();
File Pertama: main.c
#includeextern i;main() {printf("value of the external integer is = %d\n", i);return 0;}
File Kedua: original.c
#includei=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,
- Pilih Aplikasi Konsol
- Klik Go
Langkah 2) Pilih C dan klik Next
Langkah 3) Klik Berikutnya
Langkah 4) Masukkan detail dan klik Berikutnya
Langkah 5) Klik Selesai
Langkah 6) Letakkan kode utama seperti yang ditunjukkan pada program sebelumnya di file main.c dan simpan
Langkah 7) Buat file C baru [File -> baru -> File Kosong, 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
- Variabel lokal statis adalah variabel lokal yang mempertahankan dan menyimpan nilainya di antara pemanggilan atau blok fungsi dan tetap terlihat hanya untuk fungsi atau blok tempat ia didefinisikan.
- Variabel global statis adalah variabel global yang hanya terlihat oleh file yang dideklarasikan.
Example: static int count = 10;
Perlu diingat bahwa variabel statis memiliki nilai awal default nol dan hanya diinisialisasi sekali seumur hidupnya.
#include/* 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= 7iteration=15 and counter= 8iteration=16 and counter= 9
Variabel global dapat diakses di seluruh file sedangkan variabel statis hanya dapat diakses untuk bagian tertentu dari sebuah kode.
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 dalam fungsi atau blok di register CPU alih-alih RAM untuk memiliki akses cepat ke variabel ini. Misalnya, "loket" adalah calon yang baik untuk disimpan di register.
Example: register int age;
Kata kunci register digunakan untuk mendeklarasikan kelas penyimpanan register. Variabel yang dideklarasikan menggunakan kelas penyimpanan register memiliki umur sepanjang program.
Ini mirip dengan kelas penyimpanan otomatis. Variabel dibatasi pada blok tertentu. Satu-satunya perbedaan adalah bahwa variabel yang dideklarasikan menggunakan kelas penyimpanan register disimpan di dalam register CPU, bukan di 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/* 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-fitur utama dari setiap kelas penyimpanan yang umum digunakan dalam pemrograman C.
Kelas Penyimpanan | Pernyataan | Penyimpanan | Nilai Awal Default | Cakupan | Seumur hidup |
mobil | Di dalam fungsi / blok | Penyimpanan | Tak terduga | Di dalam fungsi / blok | Di dalam fungsi / blok |
daftar | Di dalam fungsi / blok | Register CPU | Sampah | Di dalam fungsi / blok | Di dalam fungsi / blok |
eksternal | Di luar semua fungsi | Penyimpanan | Nol | Seluruh file dan file lain yang variabelnya dideklarasikan sebagai extern | runtime program |
Statis (lokal) | Di dalam fungsi / blok | Penyimpanan | Nol | Di dalam fungsi / blok | runtime program |
Statis (global) | Di luar semua fungsi | Penyimpanan | Nol | Global | runtime program |
Ringkasan
Dalam tutorial ini kita telah membahas kelas penyimpanan di C, untuk menyimpulkan:
- Kelas penyimpanan di C digunakan untuk mewakili informasi tambahan tentang variabel.
- Kelas penyimpanan mewakili ruang lingkup dan umur variabel.
- Ini juga memberi tahu siapa yang dapat mengakses variabel dan dari mana?
- Auto, extern, register, static adalah empat kelas penyimpanan yang berbeda dalam program C.
- Penentu kelas penyimpanan dalam bahasa C digunakan untuk menentukan variabel, fungsi, dan parameter.
- auto digunakan untuk variabel lokal yang didefinisikan dalam blok atau fungsi
- register digunakan untuk menyimpan variabel dalam register CPU bukan lokasi memori untuk akses cepat.
- Statis digunakan untuk variabel global dan lokal. Masing-masing memiliki kasus penggunaannya dalam program C.
- Ekstern digunakan untuk berbagi data antara file proyek C.