Maison  >  Article  >  développement back-end  >  Pourquoi ma fonction HelloWorld ne fonctionne-t-elle pas ? Comprendre les problèmes de portée en C

Pourquoi ma fonction HelloWorld ne fonctionne-t-elle pas ? Comprendre les problèmes de portée en C

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-26 16:38:30163parcourir

Why Does My HelloWorld Function Not Work? Understanding Scope Issues in C

Impossible de déclarer la fonction HelloWorld : comprendre les problèmes de portée

En C, la notion de portée est cruciale pour organiser et contrôler la visibilité des fonctions , variables et autres entités au sein d’un programme. Le non-respect des règles de portée peut entraîner des erreurs de compilation, telles que celle rencontrée dans le code que vous avez fourni :

Message d'erreur :

'HelloWorld' was not declared in this scope

Code :

<code class="cpp">#include <iostream>

using namespace std;

int main()
{
    HelloWorld();
    return 0;
}

void HelloWorld()
{
    cout << "Hello, World" << endl;
}</code>

Explication :

L'erreur indique que la fonction HelloWorld() n'est pas reconnue au moment où elle est appelée dans le fonction principale. Cela se produit parce que les fonctions en C doivent être déclarées ou définies avant de pouvoir être utilisées. Dans ce cas, le compilateur ne trouve pas de déclaration ou de définition de HelloWorld() dans la portée actuelle de la fonction principale.

Solutions :

Il existe deux solutions possibles à ce numéro :

  1. Déclarer la fonction (prototype) : L'ajout d'un prototype de fonction déclare son existence au compilateur sans fournir sa définition complète. Placez la ligne suivante avant la fonction principale :
<code class="cpp">void HelloWorld();</code>
  1. Déplacer la définition de la fonction : Alternativement, vous pouvez déplacer la définition complète de HelloWorld() avant la fonction principale , comme ceci :
<code class="cpp">#include <iostream>
using namespace std;

void HelloWorld()
{
    cout << "Hello, World" << endl;
}

int main()
{
    HelloWorld();
    return 0;
}</code>

Les deux solutions résolvent le problème de portée en informant le compilateur de l'existence de la fonction HelloWorld() avant son appel.

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