Maison >développement back-end >C++ >Les fonctions C peuvent-elles s'imbriquer dans d'autres fonctions ?
Les fonctions peuvent-elles s'imbriquer dans les fonctions en C ?
En C , la réponse à cette question dépend de la version du langage utilisé.
C moderne (C 11 et versions ultérieures)
Oui, avec 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 et C 03
Non, pas directement. Cependant, vous pouvez utiliser des fonctions statiques à l'intérieur des classes locales comme solution de contournement :
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; }
Attention
En C 98 et C 03, en utilisant des classes locales et des fonctions statiques pour simuler des fonctions imbriquées n'est pas une pratique courante et peut prêter à confusion pour les autres développeurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!