Pengaturcaraan C

Statik dalam Pengaturcaraan C

Statik dalam Pengaturcaraan C
Dalam tutorial ini, kami akan menerangkan kata kunci statik dengan menerapkannya dalam pemboleh ubah dan fungsi. Static adalah kata kunci yang digunakan dalam pengaturcaraan C, dan dapat diterapkan dengan menggunakan sintaks berikut:

data type statik nama berubah

Pemboleh ubah tempatan statik

Apabila pemboleh ubah dalam fungsi statik, pemboleh ubah mengekalkan nilainya antara panggilan fungsi.

// Contoh1.c
#sertakan
int fun1 ()

kiraan int = 0;
kira ++;
kiraan pulangan;

int fun2 ()

kiraan int statik = 0;
kira ++;
kiraan pulangan;

int utama ()

printf ("fun1 1st call return:% d \ n", fun1 ());
printf ("fun1 2nd call return:% d \ n \ n", fun1 ());
printf ("fun2 1st call return:% d \ n", fun2 ());
printf ("fun2 2nd call return:% d \ n", fun2 ());
pulangan 0;


Dalam Contoh 1.c, kita mempunyai dua fungsi: keseronokan1 () dan keseronokan2 (). Dalam keseronokan1 (), kami menyatakan satu pemboleh ubah (hitungan) dan menginisialisasi menjadi 0. Kemudian, kami menambah pemboleh ubah kiraan dan mengembalikan nilai yang dihasilkan. Menggunakan utama (), kami panggil keseronokan1 () dua kali, dan setiap kali, nilai 1 dikembalikan kerana pemboleh ubah kiraan dihapus ketika panggilan ke keseronokan1 () sudah selesai. Dalam keseronokan2 () kami menyatakan pemboleh ubah kiraan sebagai pemboleh ubah statik. Oleh itu, nilainya terpelihara. Menggunakan utama (), kami panggil seronok2 () dua kali: kali pertama, nilai 1 dikembalikan, dan kali kedua, nilai 2 dikembalikan.

Pemboleh ubah global statik

Pemboleh ubah global statik berkelakuan sama seperti pemboleh ubah global lain, tetapi tidak dapat diakses dari program C yang lain.

Fungsi statik

Dalam C, fungsi secara global secara lalai. Namun, jika kita menyatakan fungsi statis, maka fungsi tersebut bersifat lokal dan tidak dapat diakses dari program C yang lain.

Permulaan pemboleh ubah statik

Sekiranya pemboleh ubah statik tidak diinisialisasi secara eksplisit, maka ia diinisialisasi sebagai 0.

// Contoh2.c
#sertakan
int utama ()

int i statik;
printf ("Nilai i:% d \ n", i);
pulangan 0;


Dalam Contoh2.c, kami menyatakan pemboleh ubah statik i yang tidak diinisialisasi. Namun, kerana pemboleh ubah itu statik, ia secara automatik diinisialisasi menjadi 0.

Penting untuk diperhatikan bahawa pemboleh ubah statik mesti dimulakan dengan literal tetap; kita tidak dapat menggunakan nilai kembali fungsi untuk memulakan pemboleh ubah statik.

// Contoh3.c
#sertakan
int fun1 ()

pulangan 5;

int utama ()

statik int i = fun1 ();
printf ("Nilai i:% d \ n", i);
pulangan 0;


Dalam Contoh3.c, kami cuba menginisialisasi pemboleh ubah statik dengan menggunakan nilai kembali keseronokan1 (). Namun, seperti yang anda lihat, ralat dikembalikan semasa kod disusun.

Ringkasan

Jangka hayat pemboleh ubah statik dan jangka hayat program adalah sama.

Sekiranya pemboleh ubah statik tidak diinisialisasi, maka ia akan menggunakan nilai lalai 0.

Baik pemboleh ubah statik global atau fungsi statik dapat diakses dari program selain daripada yang ditentukan.

Kursor melompat atau bergerak secara rawak semasa menaip di Windows 10
Sekiranya anda mendapati kursor tetikus anda melompat atau bergerak sendiri, secara automatik, secara rawak semasa menaip komputer riba atau komputer ...
Cara membalikkan arah tatal Tetikus dan Pad Sentuh pada Windows 10
Tetikus dan Pad sentuhs bukan sahaja menjadikan pengkomputeran mudah, tetapi lebih cekap dan kurang memakan masa. Kami tidak dapat membayangkan kehidu...
Cara menukar saiz, warna & skema penunjuk dan kursor tetikus pada Windows 10
Penunjuk dan kursor tetikus di Windows 10 adalah aspek yang sangat penting dalam sistem operasi. Ini boleh dikatakan untuk sistem operasi lain juga, j...