Melayari Perbezaan Antara CANTIK_FUNGSI__, __FUNCTION__ dan __func
Dalam bidang pengekodan, penting untuk memahami perbezaan antara tiga pengecam: __PRETTY_FUNCTION__, __FUNCTION__ dan __func__. Setiap satu mempunyai sifat dan dokumentasi uniknya, mempengaruhi pilihan kami bergantung pada hasil yang diingini.
Menyelam ke dalam func
Diperkenalkan dalam C99, func menawarkan penyelesaian mudah untuk mengakses nama fungsi semasa dalam skop fungsi. Ia berkembang kepada tatasusunan aksara yang mengandungi nama fungsi tanpa hiasan. Pengecam ini telah mendapat daya tarikan dalam C juga, ditambah dalam C 11 dengan definisi yang sedikit berbeza: "rentetan yang ditentukan pelaksanaan."
Meneroka FUNGSI
Penyusun C tertentu menyokong FUNGSI sebagai sambungan pra-standard, tetapi bergantung semata-mata padanya adalah tidak digalakkan. Untuk penyusun yang tidak mempunyai sokongan func, FUNCTION boleh berfungsi sebagai pengganti, walaupun dengan pengehadan berbanding rakan sejawatannya yang standard.
Enter PRETTY_FUNCTION
__PRETTY_FUNCTION__, sambungan khusus untuk gcc, beroperasi sama dengan __FUNCTION__. Walau bagaimanapun, dalam konteks fungsi C, ia membentangkan versi nama fungsi yang dipertingkatkan, lengkap dengan tandatangan fungsi. Visual C menawarkan alternatif yang setanding dalam __FUNCSIG__, dengan perbezaan yang ketara.
Dokumentasi dan Ketersediaan
Untuk makro bukan standard, adalah bijak untuk merujuk kepada dokumentasi pengkompil masing-masing . Sambungan Visual C didokumentasikan dengan baik dalam MSDN di bawah "Makro Pratakrif" untuk pengkompil C, manakala sambungan gcc diliputi dalam halaman dokumentasi "Nama Fungsi sebagai Rentetan."
Memilih Pengecam yang Betul
Memilih pengecam yang sesuai bergantung pada hasil yang dikehendaki dan pengkompil sokongan.
Dengan memahami nuansa pengecam ini, anda boleh memanfaatkan kuasanya dengan berkesan untuk mendapatkan maklumat berkaitan fungsi yang anda perlukan dalam pengekodan anda berusaha.
Atas ialah kandungan terperinci Apakah Perbezaan Antara `__PRETTY_FUNCTION__`, `__FUNCTION__` dan `__func__`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!