Menetapkan Alias kepada Nama Fungsi dalam C
Dalam C , fungsi, seperti entiti lain seperti pembolehubah atau jenis, boleh diberikan nama alternatif yang diketahui sebagai alias. Ini menyediakan cara yang mudah dan boleh dibaca untuk merujuk fungsi dengan nama deskriptif atau ringkas. Terdapat beberapa teknik yang tersedia untuk mencapai ini:
1. Menggunakan Makro Prapemproses:
#define holler printf
Pendekatan ini mudah dan mudah digunakan. Walau bagaimanapun, ia boleh mencipta isu kebolehselenggaraan kerana ia memperkenalkan arahan prapemproses ke dalam kod.
2. Menggunakan Penunjuk Fungsi:
void (*p)() = fn;
Penunjuk fungsi membolehkan kami memberikan nama baharu kepada fungsi melalui arahan. Penunjuk p menunjuk ke fungsi asal fn.
3. Menggunakan Rujukan Fungsi:
void (&r)() = fn;
Sama seperti penunjuk fungsi, rujukan fungsi memberikan alias melalui rujukan. Rujukan r terikat kepada fungsi asal fn.
4. Fungsi Sebaris:
inline void g(){ f(); }
Fungsi sebaris boleh digunakan untuk mencipta pembungkus bernama di sekeliling fungsi sedia ada. Fungsi sebaris g() memanggil fungsi f().
5. Menggunakan C 11 Fungsi Tidak Terlebih Beban:
const auto& new_fn_name = old_fn_name;
Kaedah ini tersedia dalam C 11 untuk fungsi bukan templat, tidak terbeban. Alias new_fn_name merujuk kepada fungsi asal old_fn_name.
6. Menggunakan Cast Statik C 11 untuk Fungsi Terlebih Beban:
const auto& new_fn_name = static_cast<OVERLOADED_FN_TYPE>(old_fn_name);
Untuk fungsi terlampau beban, tuangan statik digunakan untuk menentukan lebihan beban khusus kepada alias. OVERLOADED_FN_TYPE mewakili jenis fungsi lebihan beban tertentu.
7. Menggunakan Pembolehubah Templat C 14 Constexpr:
template<typename T> constexpr auto alias_to_old = old_function<T>;
Pendekatan ini membenarkan mengaliaskan fungsi templat menggunakan pembolehubah templat constexpr. Alias_to_old merujuk kepada fungsi templat old_function.
8. Menggunakan std::mem_fn:
auto greet = std::mem_fn(&A::f);
std::mem_fn dalam C 11 membenarkan penyalian fungsi ahli. Ucapan alias merujuk kepada fungsi ahli A::f.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Alias Fungsi dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!