C menyediakan makro FUNCTION untuk mendapatkan semula nama fungsi yang sedang dilaksanakan. Begitu juga, pembangun sering tertanya-tanya sama ada wujud makro yang setara untuk mendapatkan nama kelas, sama seperti __CLASS__.
Jawapannya terletak pada penerokaan alternatif kerana reka bentuk bahasa C. Berikut ialah beberapa pilihan yang berdaya maju:
Tersuai Makro: Pembangun boleh menentukan makro tersuai untuk mengekstrak maklumat yang diingini. Contohnya:
Untuk pengekstrakan nama kaedah:
#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__) inline std::string methodName(const std::string& prettyFunction) { // Extract the method name from __PRETTY_FUNCTION__ ... }
Untuk pengekstrakan nama kelas:
#define __CLASS_NAME__ className(__PRETTY_FUNCTION__) inline std::string className(const std::string& prettyFunction) { // Extract the class name from __PRETTY_FUNCTION__ ... }
Makro tersuai ini meniru kefungsian CLASS tetapi memerlukan pertimbangan yang teliti untuk mengendalikan kes khas, seperti kaedah atau fungsi global tanpa konteks kelas.
Atas ialah kandungan terperinci Adakah Terdapat Makro __CLASS__ untuk Pengekstrakan Nama Kelas dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!