Rumah >pembangunan bahagian belakang >C++ >Bolehkah C Prapemproses Mentakrifkan Semula Kata Kunci dan Masih Mematuhi Piawaian?
Mentakrifkan Semula Kata Kunci dalam Prapemprosesan C: Pematuhan Standard
Penggunaan #define untuk mentakrifkan semula kata kunci bahasa telah mencetuskan perdebatan dalam komuniti pembangun. Artikel ini menyelidiki piawaian mengenai amalan ini.
Pematuhan Piawaian dengan Kata Kunci Ditakrif Semula
Mengikut Piawaian C (§17.4.3.1.1/2), a prapemproses C yang mematuhi piawaian tidak boleh mentakrifkan semula kata kunci jika unit terjemahan termasuk pengepala perpustakaan standard. Sekatan ini ditarik balik untuk unit terjemahan tanpa pengepala standard.
Dalam C 0x, ayat kedua perenggan yang disebutkan di atas seolah-olah melarang definisi semula kata kunci sama sekali, yang membawa kepada kekeliruan. Walau bagaimanapun, Ken Bloom menjelaskan bahawa peraturan tidak berubah dalam C 0x. Teks itu hanya disusun semula dengan cara yang boleh menyebabkan salah faham.
Akibat Ketidakpatuhan
Jika atur cara C mentakrifkan semula kata kunci bahasa, ia tidak semestinya menjadi tidak akur. Walau bagaimanapun, ia tidak dijamin mudah alih merentasi penyusun atau platform yang berbeza. Selain itu, program sedemikian mungkin menghadapi gelagat atau ralat yang tidak dijangka jika ia cuba berinteraksi dengan pengepala perpustakaan standard yang mengharapkan takrifan kata kunci asal.
Atas ialah kandungan terperinci Bolehkah C Prapemproses Mentakrifkan Semula Kata Kunci dan Masih Mematuhi Piawaian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!