Kelas penyimpanan C
Kelas storan mentakrifkan skop (keterlihatan) dan hayat pembolehubah/fungsi dalam program C. Penentu ini diletakkan sebelum jenis yang mereka ubah suai. Kelas storan yang tersedia dalam program C disenaraikan di bawah:
auto
daftar
statik
luaran
kelas storan automatik
kelas storanauto ialah kelas storan lalai untuk semua pembolehubah tempatan.
{ int mount; auto int month;}
Contoh di atas mentakrifkan dua pembolehubah dengan kelas storan yang sama Auto hanya boleh digunakan dalam fungsi, iaitu, auto hanya boleh mengubah suai pembolehubah setempat.
daftar kelas storan
daftar Kelas storan digunakan untuk menentukan pembolehubah tempatan yang disimpan dalam daftar dan bukannya RAM. Ini bermakna saiz maksimum pembolehubah adalah sama dengan saiz daftar (biasanya perkataan), dan operator unary '&' tidak boleh digunakan padanya (kerana ia tidak mempunyai lokasi memori).
{ register int miles;}
Daftar hanya digunakan untuk pembolehubah yang perlu diakses dengan cepat, seperti kaunter. Perlu diingatkan juga bahawa mentakrifkan 'daftar' tidak bermakna pembolehubah akan disimpan dalam daftar, ia bermakna pembolehubah boleh disimpan dalam daftar, bergantung pada had perkakasan dan pelaksanaan.
kelas storan statik
statik Kelas storan mengarahkan pengkompil untuk memastikan pembolehubah tempatan hidup sepanjang hayat program, tanpa memerlukannya digunakan setiap kali ia masuk dan keluar Domain dicipta dan dimusnahkan. Oleh itu, menggunakan statik untuk mengubah suai pembolehubah tempatan mengekalkan nilainya antara panggilan fungsi.
pengubah suai statik juga boleh digunakan pada pembolehubah global. Apabila statik mengubah suai pembolehubah global, ia mengehadkan skop pembolehubah kepada fail di mana ia diisytiharkan.
Dalam pengaturcaraan C, apabila statik digunakan pada ahli data kelas, ia akan menyebabkan hanya satu salinan ahli dikongsi oleh semua objek kelas.
#include <stdio.h> /* 函数声明 */void func(void); static int count = 5; /* 全局变量 */ main(){ while(count--) { func(); } return 0;}/* 函数定义 */void func( void ){ static int i = 5; /* 局部静态变量 */ i++; printf("i is %d and count is %d\n", i, count);}
Mungkin anda masih belum dapat memahami contoh ini, kerana saya telah menggunakan fungsi dan pembolehubah global, dan kedua-dua konsep ini belum dijelaskan setakat ini. Walaupun anda tidak memahaminya sepenuhnya sekarang, tidak mengapa Kami akan menerangkannya secara terperinci dalam bab-bab berikutnya. Apabila kod di atas disusun dan dilaksanakan, ia menghasilkan keputusan berikut:
i is 6 and count is 4i is 7 and count is 3i is 8 and count is 2i is 9 and count is 1i is 10 and count is 0
kelas storan luaran
luar Kelas storan digunakan untuk memberikan rujukan kepada global pembolehubah, Pembolehubah global kelihatan kepada semua fail program. Apabila anda menggunakan 'luar', untuk pembolehubah yang tidak boleh dimulakan, nama pembolehubah menghala ke lokasi storan yang ditakrifkan sebelum ini.
Apabila anda mempunyai berbilang fail dan menentukan pembolehubah global atau fungsi yang boleh digunakan dalam fail lain, anda boleh menggunakan luaran dalam fail lain untuk mendapatkan pembolehubah yang ditakrifkan atau petikan fungsi. Boleh difahami bahawa luaran digunakan untuk mengisytiharkan pembolehubah atau fungsi global dalam fail lain.
Pengubah suai luaran biasanya digunakan apabila terdapat dua atau lebih fail yang berkongsi pembolehubah atau fungsi global yang sama, seperti yang ditunjukkan di bawah:
Fail pertama: c
#include <stdio.h> int count ;extern void write_extern(); main(){ count = 5; write_extern();}
Fail kedua: support.c
#include <stdio.h> extern int count; void write_extern(void){ printf("count is %d\n", count);}
Di sini, kata kunci luaran dalam fail kedua Digunakan untuk mengisytiharkan kira yang telah ditakrifkan dalam fail utama yang pertama.c. Sekarang, susun dua fail ini seperti berikut:
$gcc main.c support.c
Ini akan menghasilkan program boleh laku a.out Apabila program dilaksanakan, ia akan menghasilkan keputusan berikut:
5