Bolehkah Functions Nest Within Functions dalam C ?
Dalam C , jawapan kepada soalan ini bergantung pada versi bahasa yang digunakan.
C Moden (C 11 dan Nanti)
Ya, dengan lambda:
int main() { auto print_message = [](std::string message) { std::cout << message << "\n"; }; // Prints "Hello!" 10 times for (int i = 0; i < 10; i++) { print_message("Hello!"); } }
C 98 dan C 03
Tidak, tidak langsung. Walau bagaimanapun, anda boleh menggunakan fungsi statik di dalam kelas tempatan sebagai penyelesaian:
int main() { struct X { static void a() {} void b() { a(); // can call static member function inside non-static function. } }; X::a(); // call the function from outside the class. X my_x; my_x.b(); // call the second function from outside the class. return 0; }
Awas
Dalam C 98 dan C 03, menggunakan kelas tempatan dan fungsi statik untuk simulasi fungsi bersarang bukan amalan biasa dan mungkin mengelirukan pembangun lain.
Atas ialah kandungan terperinci Bolehkah Fungsi C Bersarang Dalam Fungsi Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!