Rumah > pembangunan bahagian belakang > C++ > Pengecam C/C yang manakah Perlu Saya Gunakan untuk Mendapatkan Nama Fungsi pada Runtime?

Pengecam C/C yang manakah Perlu Saya Gunakan untuk Mendapatkan Nama Fungsi pada Runtime?

Patricia Arquette
Lepaskan: 2024-12-13 00:13:14
asal
842 orang telah melayarinya

Which C/C   Identifier Should I Use to Get a Function's Name at Runtime?

Memilih Pengecam Yang Tepat untuk Pemerolehan Nama Fungsi

C dan C menawarkan beberapa pengecam untuk mendapatkan semula nama fungsi aktif semasa masa jalan: __PRETTY_FUNCTION__ , __FUNCTION__ dan __func__. Panduan ini meneroka perbezaan antara pengecam ini dan memberikan panduan tentang penggunaannya.

__func__:

"__func__" ialah pengecam yang diperkenalkan C99 yang mewakili tatasusunan aksara yang mengandungi nama fungsi. Ia ditakrifkan secara tersirat dalam setiap fungsi. Dalam C , func telah diperkenalkan dalam C 11, menawarkan rentetan pelaksanaan yang ditetapkan.

__FUNCTION__:

"__FUNCTION__" ialah pra- sambungan standard yang disokong oleh pengkompil seperti gcc dan Visual C . Walau bagaimanapun, adalah disyorkan untuk menggunakan func jika disokong dan FUNCTION hanya apabila func tidak tersedia.

__PRETTY_FUNCTION__:

"__FUNGSI_CANTIK__" ialah a sambungan khusus gcc yang menyerupai __FUNCTION__. Untuk fungsi C, ia memaparkan nama "cantik", termasuk tandatangan. Visual C mempunyai sambungan yang serupa, __FUNCSIG__.

Memutuskan Pengecam Mana Yang Akan Digunakan:

Pilihan bergantung pada sokongan pengkompil dan format nama fungsi yang dikehendaki:

  • Gunakan func apabila tersedia (disokong dalam kebanyakan penyusun)
  • Gunakan FUNCTION jika func tidak tersedia
  • Gunakan PRETTY_FUNCTION atau FUNCSIG nama "cantik" dengan tandatangan fungsi (gcc atau Visual C sahaja)

Dokumentasi:

  • __func__: C99 §6.4.2.2/1
  • func (C ): C 11 §8.4.1[dcl.fct.def.general]/8
  • __FUNCTION__, __PRETTY_FUNCTION__: dokumentasi gcc, "Function Names as Strings"
  • __FUNCSIG__: MSDN documentation, "Predefined Macros" Visual C )

Atas ialah kandungan terperinci Pengecam C/C yang manakah Perlu Saya Gunakan untuk Mendapatkan Nama Fungsi pada Runtime?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan