Fonctions imbriquées en C
Question : Est-il possible de définir des fonctions au sein d'autres fonctions en C ?
Réponse :
C moderne (C 11 ou version ultérieure) :
Oui, vous pouvez créer des fonctions imbriquées en utilisant lambdas. Les Lambdas vous permettent de définir des fonctions anonymes qui peuvent capturer des variables locales dans leur portée.
int main() { auto print_message = [](std::string message) { std::cout << message << "\n"; }; print_message("Hello!"); }
C 98 et C 03 :
En C 98 et C 03, la définition directe de fonctions dans des fonctions n'est pas prise en charge. Cependant, vous pouvez utiliser la technique suivante :
int main() { struct X { static void a() {} }; X::a(); }
Bien que cela vous permette de créer des fonctions à l'intérieur de fonctions, il est considéré une solution de contournement et doit être utilisé avec parcimonie en raison de son potentiel d'obscurité dans la compréhension du code.
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!