Rumah >pembangunan bahagian belakang >C++ >Bolehkah Fungsi C Disarang?
Fungsi Bersarang dalam C
Soalan: Adakah mungkin untuk mentakrifkan fungsi dalam fungsi lain dalam C ?
Jawapan:
C Moden (C 11 atau lebih baru):
Ya, anda boleh mencipta fungsi bersarang menggunakan lambda. Lambdas membenarkan anda mentakrifkan fungsi tanpa nama yang boleh menangkap pembolehubah setempat dalam skopnya.
int main() { auto print_message = [](std::string message) { std::cout << message << "\n"; }; print_message("Hello!"); }
C 98 dan C 03:
Dalam C 98 dan C 03, mentakrifkan secara langsung fungsi dalam fungsi tidak disokong. Walau bagaimanapun, anda boleh menggunakan teknik berikut:
int main() { struct X { static void a() {} }; X::a(); }
Walaupun ini membolehkan anda mencipta fungsi di dalam fungsi, ia dianggap sebagai penyelesaian dan harus digunakan dengan berhati-hati kerana potensinya untuk kekaburan dalam pemahaman kod.
Atas ialah kandungan terperinci Bolehkah Fungsi C Disarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!