Kelas Penyimpanan C

Dalam tutorial ini, Anda akan belajar tentang ruang lingkup dan masa pakai variabel lokal dan global. Selain itu, Anda akan belajar tentang variabel statis dan register.

Setiap variabel dalam pemrograman C memiliki dua properti: tipe dan kelas penyimpanan.

Jenis mengacu pada tipe data variabel. Dan, kelas penyimpanan menentukan cakupan, visibilitas, dan masa pakai variabel.

Ada 4 jenis kelas penyimpanan:

  1. otomatis
  2. luar
  3. statis
  4. daftar

Variabel Lokal

Variabel yang dideklarasikan di dalam blok adalah variabel otomatis atau lokal. Variabel lokal hanya ada di dalam blok tempat ia dideklarasikan.

Mari kita ambil contoh.

 #include int main(void) ( for (int i = 0; i < 5; ++i) ( printf("C programming"); ) // Error: i is not declared at this point printf("%d", i); return 0; )

Ketika Anda menjalankan program di atas, Anda akan mendapatkan kesalahan pengenal yang tidak dideklarasikan i. Itu karena i dideklarasikan di dalam forblok loop. Di luar blok, tidak diumumkan.

Mari kita ambil contoh lain.

  int main() ( int n1; // n1 is a local variable to main() ) void func() ( int n2; // n2 is a local variable to func() ) 

Dalam contoh di atas, n1 adalah lokal ke main()dan n2 adalah lokal ke func().

Ini berarti Anda tidak dapat mengakses variabel n1 di dalamnya func()karena hanya ada di dalam main(). Demikian pula, Anda tidak dapat mengakses variabel n2 di dalamnya main()karena hanya ada di dalam func().

Variabel Global

Variabel yang dideklarasikan di luar semua fungsi dikenal sebagai variabel eksternal atau global. Mereka dapat diakses dari fungsi apa pun di dalam program.

Contoh 1: Variabel Global

 #include void display(); int n = 5; // global variable int main() ( ++n; display(); return 0; ) void display() ( ++n; printf("n = %d", n); ) 

Keluaran

 n = 7

Misalkan, variabel global dideklarasikan dalam file1. Jika Anda mencoba menggunakan variabel itu di file lain file2, kompilator akan mengeluh. Untuk mengatasi masalah ini, kata kunci externdigunakan dalam file2untuk menunjukkan bahwa variabel eksternal dideklarasikan di file lain.

Daftarkan Variabel

Kata registerkunci digunakan untuk mendeklarasikan variabel register. Variabel register seharusnya lebih cepat daripada variabel lokal.

Namun, kompiler modern sangat ahli dalam pengoptimalan kode, dan ada kemungkinan langka bahwa menggunakan variabel register akan membuat program Anda lebih cepat.

Kecuali Anda bekerja pada sistem tertanam di mana Anda tahu bagaimana mengoptimalkan kode untuk aplikasi yang diberikan, tidak ada penggunaan variabel register.

Variabel Statis

Variabel statis dideklarasikan dengan menggunakan statickata kunci. Sebagai contoh;

 int statis i;

Nilai variabel statis tetap ada hingga akhir program.

Contoh 2: Variabel Statis

 #include void display(); int main() ( display(); display(); ) void display() ( static int c = 1; c += 5; printf("%d ",c); ) 

Keluaran

 6 11

Selama pemanggilan fungsi pertama, nilai c diinisialisasi ke 1. Nilainya bertambah 5. Sekarang, nilai c adalah 6, yang dicetak di layar.

Selama pemanggilan fungsi kedua, c tidak diinisialisasi ke 1 lagi. Itu karena c adalah variabel statis. Nilai c bertambah 5. Sekarang, nilainya menjadi 11, yang tercetak di layar.

Artikel yang menarik...