Bagaimana Anda Boleh Mendapatkan Maklumat Kelas dalam C?

Susan Sarandon
Lepaskan: 2024-11-08 21:20:02
asal
834 orang telah melayarinya

How Can You Retrieve Class Information in C  ?

Mendapatkan Maklumat Kelas dalam C : KELAS Makro

Dalam C , KELAS makro menyediakan cara mudah untuk mendapatkan semula nama kelas semasa, sama seperti cara FUNCTION menyediakan akses kepada nama fungsi.

CLASS Pelaksanaan Makro

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa KELAS bukanlah makro yang ditakrifkan secara rasmi dalam standard C. Sebaliknya, pelaksanaannya mungkin berbeza-beza bergantung pada pengkompil dan platform.

Satu pelaksanaan biasa yang ditakrifkan untuk gcc ialah PRETTY_FUNCTION makro yang merangkumi nama kelas bersama-sama dengan nama fungsi. Namun begitu, makro ini tidak diseragamkan dan tingkah lakunya boleh berbeza-beza merentas penyusun yang berbeza.

Penyelesaian Alternatif

Dalam senario di mana mudah alih merentas penyusun adalah kritikal, taip(*ini ).name() boleh digunakan untuk mendapatkan nama kelas yang layak, termasuk ruang nama. Walau bagaimanapun, kaedah ini hanya terpakai apabila penunjuk ini sah wujud, yang mungkin tidak berlaku dalam panggilan kaedah statik.

Makro Khusus Platform

Sesetengah pengkompil mungkin menyediakan makro khusus platform untuk mendapatkan semula maklumat kelas. Sebagai contoh, Microsoft Visual Studio menyediakan atribut __declspec(dllexport) dan __declspec(dllimport), yang boleh digunakan untuk mengekstrak nama kelas dalam cara merentas platform.

Makro Tersuai untuk Kelas dan Kaedah Nama

Untuk mencapai pendekatan yang lebih generik dan mudah alih, makro tersuai boleh ditakrifkan untuk mengekstrak nama kelas dan kaedah daripada PRETTY_FUNCTION atau typeid(*this).name():

#define __CLASS_NAME__ className(__PRETTY_FUNCTION__)
#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__)
Salin selepas log masuk

Makro ini menggunakan fungsi pembantu untuk menghuraikan maklumat yang diperlukan daripada __PRETTY_FUNCTION__, memastikan keserasian merentas pengkompil dan platform.

Atas ialah kandungan terperinci Bagaimana Anda Boleh Mendapatkan Maklumat Kelas dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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