Rumah >pembangunan bahagian belakang >C++ >NULL lwn. 0 dalam C : Manakah yang Perlu Saya Gunakan untuk Penunjuk Null?
Dilema Petunjuk Null: NULL lwn. 0
Dalam permaidani amalan pengekodan C, perdebatan telah timbul mengenai penggunaan NULL lawan 0 (sifar) untuk penunjuk nol. Asal-usul perbincangan ini terletak pada hari-hari awal C , apabila NULL ditakrifkan sebagai (void*)0. Kekangan ini mengehadkan penetapannya untuk membatalkan penunjuk, menjadikannya agak tidak praktikal. Akibatnya, pembangun menerima pakai konvensyen menggunakan 0 sebagai penuding nol.
Keutamaan telah berterusan walaupun terdapat evolusi C . Sesetengah pengaturcara, seperti pengarang, memilih 0 kerana penggunaan intuitifnya sebagai nilai nol dan keserasiannya dengan ujian nilai kebenaran (jika (p && !q)). Sebaliknya, yang lain menyokong NULL berdasarkan estetika.
Untuk menangani persoalan berterusan ini, mari kita pertimbangkan perspektif Bjarne Stroustrup, pencipta C . Menurut Soalan Lazim Gaya dan Teknik C Stroustrup, NULL berkesan sinonim dengan 0 dalam C , menjadikannya soal keutamaan peribadi. Beliau mencadangkan menggunakan 0 untuk mengelakkan makro dan menekankan bahawa definisi NULL pra-standard kadangkala membawa kepada tingkah laku yang tidak dijangka.
Dalam C 11, kata kunci nullptr telah diperkenalkan untuk mentakrifkan nilai penunjuk nol secara eksplisit. Walau bagaimanapun, Stroustrup mengesyorkan memfokuskan pada fungsi kod dan bukannya memikirkan nuansa.
Akhirnya, pilihan antara NULL dan 0 kekal sebagai pilihan peribadi. Kedua-dua pendekatan mempunyai kelebihan masing-masing, dan tidak ada yang unggul. Adalah penting untuk memastikan konsistensi dalam pasukan pengekodan atau projek, tetapi tidak ada sebab objektif untuk secara pasti memilih satu pilihan berbanding yang lain.
Atas ialah kandungan terperinci NULL lwn. 0 dalam C : Manakah yang Perlu Saya Gunakan untuk Penunjuk Null?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!