Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memilih Antara `__func__`, `__FUNCTION__` dan `__PRETTY_FUNCTION__` untuk Mengakses Nama Fungsi dalam C dan C ?

Bagaimana untuk Memilih Antara `__func__`, `__FUNCTION__` dan `__PRETTY_FUNCTION__` untuk Mengakses Nama Fungsi dalam C dan C ?

Susan Sarandon
Susan Sarandonasal
2024-12-13 15:35:11851semak imbas

How to Choose Between `__func__`, `__FUNCTION__`, and `__PRETTY_FUNCTION__` for Accessing Function Names in C and C  ?

Makro Nama Fungsi dalam C dan C

Dalam C dan C , beberapa makro tersedia untuk mengakses nama fungsi semasa. Makro ini termasuk __func__, __FUNCTION__ dan __PRETTY_FUNCTION__.

func

Ditakrifkan dalam C99 dan diterima pakai ke dalam C 11, func > ialah pembolehubah tatasusunan aksara yang diisytiharkan secara tersirat yang dipegang nama fungsi yang disertakan. Ia adalah pilihan yang ringkas dan ringan yang menyediakan nama fungsi tanpa hiasan.

FUNGSI

FUNGSI ialah pra-standard sambungan yang disokong oleh penyusun tertentu. Tingkah lakunya serupa dengan func__, tetapi ia bukan sebahagian daripada standard bahasa rasmi. Adalah lebih baik untuk menggunakan __func jika tersedia atas sebab mudah alih.

PRETTY_FUNCTION

PRETTY_FUNCTION ialah GCC- sambungan khusus yang memberikan nama "cantik" bagi fungsi tersebut, termasuk fungsinya tandatangan. Tidak seperti pendahulunya, ia amat berguna dalam C untuk mendapatkan prototaip fungsi penuh dengan jenis hujah.

Dokumentasi

func didokumenkan dalam C99 standard, seksyen 6.4.2.2/1. FUNGSI tidak didokumenkan secara rasmi tetapi biasanya disertakan dalam dokumentasi khusus pengkompil. PRETTY_FUNCTION didokumenkan pada halaman dokumentasi GCC "Nama Fungsi sebagai Rentetan."

Bila Menggunakan Setiap Makro

Pilihan makro bergantung pada keperluan khusus:

  • Fungsi ringkas nama: func atau FUNGSI sudah memadai.
  • Nama fungsi kompleks dengan tandatangan (C sahaja): PRETTY_FUNCTION
  • Pra-C99 atau keserasian bukan C 11: FUNGSI (jika disokong oleh pengkompil)
  • Kemudahalihan maksimum: fungsi

Atas ialah kandungan terperinci Bagaimana untuk Memilih Antara `__func__`, `__FUNCTION__` dan `__PRETTY_FUNCTION__` untuk Mengakses Nama Fungsi dalam C dan C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn