Kelas Penyimpanan C

Dalam tutorial ini, anda akan belajar mengenai skop dan jangka masa pemboleh ubah tempatan dan global. Anda juga akan belajar mengenai pemboleh ubah statik dan daftar.

Setiap pemboleh ubah dalam pengaturcaraan C mempunyai dua sifat: jenis dan kelas penyimpanan.

Jenis merujuk kepada jenis data pemboleh ubah. Dan, kelas penyimpanan menentukan ruang lingkup, keterlihatan dan jangka hayat pemboleh ubah.

Terdapat 4 jenis kelas storan:

  1. automatik
  2. luaran
  3. statik
  4. daftar

Pemboleh ubah Setempat

Pemboleh ubah yang dinyatakan di dalam blok adalah pemboleh ubah automatik atau tempatan. Pemboleh ubah tempatan hanya terdapat di dalam blok di mana ia dinyatakan.

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; )

Semasa anda menjalankan program di atas, anda akan mendapat ralat pengecam yang tidak diisytiharkan i. Ini kerana saya dinyatakan di dalam forblok gelung. Di luar blok, ia tidak diisytiharkan.

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 tempatan main()dan n2 adalah tempatan func().

Ini bermakna anda tidak dapat mengakses pemboleh ubah n1 di dalamnya func()kerana ia hanya ada di dalamnya main(). Begitu juga, anda tidak dapat mengakses pemboleh ubah n2 di dalamnya main()kerana ia hanya ada di dalamnya func().

Pembolehubah Global

Pemboleh ubah yang dinyatakan di luar semua fungsi dikenali sebagai pemboleh ubah luaran atau global. Mereka boleh diakses dari sebarang fungsi di dalam program.

Contoh 1: Pembolehubah Global

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

Pengeluaran

 n = 7

Katakan, pemboleh ubah global dinyatakan dalam file1. Sekiranya anda cuba menggunakan pemboleh ubah tersebut dalam fail lain file2, penyusun akan mengeluh. Untuk menyelesaikan masalah ini, kata kunci externdigunakan file2untuk menunjukkan bahawa pemboleh ubah luaran dinyatakan dalam fail lain.

Daftar Pembolehubah

Kata registerkunci digunakan untuk menyatakan pemboleh ubah daftar. Daftar pemboleh ubah seharusnya lebih cepat daripada pemboleh ubah tempatan.

Namun, penyusun moden sangat baik dalam pengoptimuman kod, dan ada kemungkinan jarang bahawa menggunakan pemboleh ubah daftar akan menjadikan program anda lebih cepat.

Kecuali anda mengusahakan sistem tertanam di mana anda tahu bagaimana mengoptimumkan kod untuk aplikasi yang diberikan, tidak ada penggunaan variabel register.

Pembolehubah Statik

Pemboleh ubah statik dinyatakan dengan menggunakan statickata kunci. Sebagai contoh;

 int i statik;

Nilai pemboleh ubah statik berterusan sehingga akhir program.

Contoh 2: Pembolehubah Statik

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

Pengeluaran

 6 11

Semasa panggilan fungsi pertama, nilai c diinisialisasi menjadi 1. Nilainya meningkat sebanyak 5. Sekarang, nilai c adalah 6, yang dicetak di layar.

Semasa panggilan fungsi kedua, c tidak diinisialisasi menjadi 1 lagi. Ini kerana c adalah pemboleh ubah statik. Nilai c meningkat sebanyak 5. Sekarang, nilainya akan menjadi 11, yang dicetak di layar.

Artikel menarik...