Pembolehubah statik memainkan peranan penting dalam pengaturcaraan C dan C, membolehkan data kekal sepanjang hayat sesuatu program. Tetapi di manakah sebenarnya pembolehubah ini disimpan dalam fail boleh laku untuk memastikan tiada perlanggaran nama berlaku?
Pertimbangkan coretan kod berikut:
// foo.c static int foo = 1; void fooTest() { static int bar = 2; foo++; bar++; } // bar.c static int foo = 10; void barTest() { static int bar = 20; foo++; bar++; }
Apabila menyusun dan memautkan fail ini dengan fungsi utama yang memanggil footTest() dan barTest() berulang kali, penyataan printf meningkat secara bebas. Ini menunjukkan bahawa pembolehubah foo dan bar adalah setempat kepada unit terjemahan masing-masing.
Peruntukan pembolehubah statik dalam fail boleh laku bergantung pada permulaannya.
Lokasi storan khusus pembolehubah statik mungkin berbeza bergantung pada rantai alat yang digunakan. Untuk perbincangan ini, mari kita anggap kita menggunakan GNU Compiler Collection (GCC).
Pembolehubah statik dalam C dan C disimpan dalam segmen .BSS atau .DATA bagi boleh laku fail, bergantung pada permulaannya. Ini memastikan setiap pembolehubah statik mempunyai lokasi memori yang unik dan menghalang perlanggaran nama.
Atas ialah kandungan terperinci Di manakah Pembolehubah Statik Disimpan dalam Boleh Laksana C dan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!