Senin, November 18, 2019

Kelas Penyimpanan pada bahasa C

Kelas penyimpanan digunakan untuk mendeksripsikan fitur dari variabel atau fungsi. Fitur ini pada dasarnya mencakup scope, visibilitas, dan life-time yang membantu untuk melacak keberadaan dari variabel tertentu selama program dijalankan.

Bahasa C menggunakan empat kelas penyimpanan, yang bernama:

kelas penyimpanan pada bahasa c
Gambar 1 kelas penyimpanan

satu, auto: Merupakan kelas penyimpanan default (storage default class) untuk segala deklarasi variabel di dalam sebuah fungsi atau sebuah block. Keyword auto biasanya digunakan ketika membuat program dalam bahasa C. Variabel auto hanya bisa diakses dengan block atau fungsi yang telah dideklarasikan dan tidak berada diluar dari scope-nya. Keyword ini hanya bisa diakses dengan block bersarang bersamaan parent block atau fungsi pada variabel auto yang telah dideklarasikan. Namun, auto juga bisa diakses dari luar scope-nya jika menggunakan konsep pointer, dengan cara melakukan pointing atau penunjukkan pada lokasi memori yang tepat dimana variabel berada. Keyword ini diberi nilai sisa secara otomatis dimanapun keyword dideklarasikan.

dua, extern: Kelas penyimpanan extern secara sederhana memberitahukan bahwa variabel telah didefinisikan dan tidak berada pada block sama dengan block yang menggunakannya. Sederhanya, nilai yang telah ditetapkan terhadap kelas penyimpanan tidak berada bersama pada block dimana kelas tersebut digunakan. Nilai yang ditetapkan berada pada block berbeda dan dapat dilakukan ovewritten atau perubahan pada block yang berbeda pula. Sehingga variabel extern tidak lain adalah variabel global yang diinisialisasi dengan nilai legal dimana variabel tersebut dideklarasikan sesuai perintah dimana variabel tersebut akan digunakan. Variabel ini dapat diakses dengan fungsi atau block apapun. Juga, sebuah variabel global normal dapat membuat extern pula dengan menambahkan keyword 'extern' sebelum pendeklarasian atau pendefinisian oleh fungsi atau block apapun. Pada dasarnya hal ini menandakan bahwa, tidak dilakukan inisialisasi sebuah variabel baru melainkan hanya menggunakan atau melakukan akses kepada variabel global semata. Tujuan utama dari penggunakan variabel extern adalah variabel tersebut dapat diakses antara dua file berbeda yang menjadi satu bagian dari program.

tiga, static: Kelas penyimpanan digunakan untuk mendeklarasikan variabel static yang secara populer digunakan ketika membuat program dalam bahasa C. Variabel static memiliki properti dari penyimpanan nilai bahkan setelah nilai tersebut keluar dari scope-nya. Karena hal tersebut, variabel static hanya menggunakan nilai terakhir yang digunakan pada scope-nya. Sehingga bisa dikatakan bahwa variabel ini hanya diinisialisasi sekali dan akan tetap exist sampai proses atau program telah berhenti dijalankan. Sehingga, tidak ada memori baru yang dialokasikan karena memori tersebut tidak dideklarasikan ulang. Scope dari variabel ini bersifat lokal pada fungsi dimana variabel tersebut didefinisikan. Variabel static global dapat diakses dimanapun pada bagian program. Secara otomatis, ditetapkan nilai 0 oleh kompilator ketika variabel ini dideklarasikan.

empat, register: Kelas penyimpanan yang mendeklarasikan variabel register memiliki fungsi sama seperti variabel auto. Perbedaannya adalah kompilator mencoba untuk menyimpan variabel ini pada register dari mikroprosesor jika free register tidak tersedia. Hal ini membuat penggunaan dari variabel register lebih cepat daripada variabel yang disimpan pada memori selama waktu runtime dari program. Jika sebuah free register tidak tersedia, maka nilainya akan disimpan pada bagian memori saja. Umumnya beberapa variabel dapat diakses lebih sering pada sebuah program yang dideklarasikan dengan keyword register akan memiliki waktu running yang lebih baik terhadap sebuah program. Alamat register tidak bisa didapatkan dengan menggunakan pointer.

Untuk menyederhanakan kelas penyimpanan untuk sebuah variabel, perhatikan sintak program berikut ini:

sintak:
storage_class var_data_type var_name;

Fungsi berikut mengikuti sintak yang sama seperti yang diberikan pada variabel sebelumnya. Perhatikan contoh program bahasa c berikut untuk lebih memahami:

Output:
A program to demonstrate Storage Classes in C

Demonstrating auto class

Value of the variable ‘a’ declared as auto: 32
——————————–
Demonstrating register class

Value of the variable ‘b’ declared as register: 71
——————————–
Demonstrating extern class

Value of the variable ‘x’ declared as extern: 0
Modified value of the variable ‘x’ declared as extern: 2
——————————–
Demonstrating static class

Declaring ‘y’ as static inside the loop.
But this declaration will occur only once as ‘y’ is static.
If not, then every time the value of ‘y’ will be the declared value 5 as in the case of variable ‘p’

Loop started:

The value of ‘y’, declared as static, in 1 iteration is 6
The value of non-static variable ‘p’, in 1 iteration is 11

The value of ‘y’, declared as static, in 2 iteration is 7
The value of non-static variable ‘p’, in 2 iteration is 11

The value of ‘y’, declared as static, in 3 iteration is 8
The value of non-static variable ‘p’, in 3 iteration is 11

The value of ‘y’, declared as static, in 4 iteration is 9
The value of non-static variable ‘p’, in 4 iteration is 11

Loop ended:
——————————–

Storage Classes demonstrated





Related Posts

Kelas Penyimpanan pada bahasa C
Oleh

"semoga yang memberikan komentar diberikan berkah kebaikan dari Allah, dijauhkan dari kejahatan, dan diberikan pahala ilmu dan amal jariyah dari sepenggal kata yang ia tinggalkan amiin :) "