Rumah > Artikel > pembangunan bahagian belakang > Adakah kata kunci 'statik' dalam C benar-benar tidak digunakan?
Pembangun C telah lama menggunakan kata kunci 'statik' dalam unit terjemahan untuk mengawal keterlihatan simbol. Walau bagaimanapun, amalan ini mendapat penamatan dalam n3092, diikuti dengan penyingkirannya dalam n3225.
Penyingkiran 'statik' bertujuan untuk tidak menggalakkan penggunaannya untuk mengisytiharkan objek dalam skop ruang nama , kerana ruang nama yang tidak dinamakan menawarkan alternatif yang lebih baik. Walau bagaimanapun, isu menjejaki kecacatan C mendedahkan sebab bernuansa untuk perubahan ini.
Dalam Semakan 94 Laporan Kecacatan Bahasa Teras Standard C, isu tersebut (1012. Tidak menafikan statik ) menjelaskan bahawa:
Walaupun 7.3.1.1 [namespace.unnamed] menyatakan bahawa penggunaan kata kunci statik untuk mengisytiharkan pembolehubah dalam skop ruang nama telah ditamatkan kerana ruang nama yang tidak dinamakan menyediakan alternatif yang lebih baik, tidak mungkin ciri itu akan dialih keluar pada bila-bila masa pada masa hadapan yang boleh dijangka.
Kemas kini ini secara berkesan membalikkan penamatan. 'Statik' kekal sebagai kata kunci yang sah untuk mengisytiharkan fungsi dan objek dengan pautan dalaman. Kelebihan utamanya terletak pada kepekatannya dan kekurangan kod boilerplate tambahan berbanding menggunakan ruang nama yang tidak dinamakan.
Penyingkiran asal bertujuan untuk meningkatkan pematuhan C kepada piawaian C , kerana C tidak mengenali ruang nama yang tidak dinamakan. Walau bagaimanapun, keputusan untuk membatalkan penamatan itu mengakui kerumitan dunia sebenar penyusunan program C sebagai C .
Penyingkiran 'statik' mungkin berniat baik, tetapi penyingkirannya mencerminkan kesedaran bahawa ruang nama yang tidak dinamakan tidak menggantikan sepenuhnya utiliti 'statik' untuk mengisytiharkan objek dengan pautan dalaman. Akibatnya, pembangun boleh terus menggunakan 'statik' dengan yakin, kerana kehadirannya dalam standard C tidak mungkin pudar dalam masa terdekat.
Atas ialah kandungan terperinci Adakah kata kunci 'statik' dalam C benar-benar tidak digunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!