Dalam C , kata kunci statik dalam unit terjemahan menentukan keterlihatan simbol. Walau bagaimanapun, dalam n3092, penggunaannya untuk objek dalam skop ruang nama telah ditamatkan, dan dalam n3225, penamatan telah dialih keluar.
Anehnya, dokumentasi tentang perubahan ini adalah terhad. Artikel ini menyelidiki sebab di sebaliknya.
Dalam Semakan 94 Laporan Kecacatan Bahasa Teras Standard C dan Isu yang Diterima, di bawah 1012. Statik Tidak Berguna, ia menyatakan:
Although 7.3.1.1 [namespace.unnamed] states that the use of the static keyword for declaring variables in namespace scope is deprecated because the unnamed namespace provides a superior alternative, it is unlikely that the feature will be removed at any point in the foreseeable future.
Pada dasarnya, penamatan statik telah salah letak. Ia menyediakan cara yang mudah untuk mengisytiharkan fungsi atau objek dengan pautan dalaman tanpa memerlukan kod boilerplate ruang nama yang tidak dinamakan.
Satu kebimbangan ialah keserasian dengan C. Walau bagaimanapun, menyusun atur cara C sebagai C boleh mencabar, jadi faktor ini mungkin tidak memainkan peranan penting peranan.
Pengalihan keluar penamatan kata kunci statik mencerminkan pengiktirafan bahawa ia kekal sebagai ciri berharga dalam C . Walaupun ruang nama yang tidak dinamakan menawarkan alternatif, statik menyediakan penyelesaian yang ringkas dan langsung untuk mengisytiharkan objek atau fungsi dengan pautan dalaman.
Atas ialah kandungan terperinci Mengapakah Penamatan Kata Kunci Statik dalam C Diterbalikkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!