Maison >développement back-end >C++ >Les fonctions C peuvent-elles s'imbriquer dans d'autres fonctions ?

Les fonctions C peuvent-elles s'imbriquer dans d'autres fonctions ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-15 22:40:10526parcourir

Can C   Functions Nest Within Other Functions?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn