Können Funktionen in C in Funktionen verschachtelt werden?
In C hängt die Antwort auf diese Frage von der verwendeten Sprachversion ab.
Modernes C (C 11 und höher)
Ja, mit Lambdas:
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 und C 03
Nein, nicht direkt. Sie können jedoch statische Funktionen innerhalb lokaler Klassen als Problemumgehung verwenden:
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; }
Achtung
In C 98 und C 03 können lokale Klassen und statische Funktionen verwendet werden Das Simulieren verschachtelter Funktionen ist keine gängige Praxis und kann für andere Entwickler verwirrend sein.
Das obige ist der detaillierte Inhalt vonKönnen C-Funktionen in andere Funktionen eingebettet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!