Maison > développement back-end > C++ > 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
Libérer: 2024-10-26 16:38:30
original
237 Les gens l'ont consulté

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
Copier après la connexion

Code :

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

using namespace std;

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

void HelloWorld()
{
    cout << "Hello, World" << endl;
}</code>
Copier après la connexion

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>
Copier après la connexion
  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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal