ホームページ > バックエンド開発 > C++ > HelloWorld 機能が動作しないのはなぜですか? C のスコープの問題を理解する

HelloWorld 機能が動作しないのはなぜですか? C のスコープの問題を理解する

Mary-Kate Olsen
リリース: 2024-10-26 16:38:30
オリジナル
234 人が閲覧しました

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

HelloWorld 関数を宣言できません: スコープの問題を理解する

C では、スコープの概念は関数の可視性を整理および制御するために重要です、変数、およびプログラム内のその他のエンティティ。スコープ ルールに従わないと、指定したコードで発生したようなコンパイル エラーが発生する可能性があります:

エラー メッセージ:

'HelloWorld' was not declared in this scope
ログイン後にコピー

コード:

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

using namespace std;

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

void HelloWorld()
{
    cout << "Hello, World" << endl;
}</code>
ログイン後にコピー

説明:

このエラーは、関数 HelloWorld() が呼び出された時点で認識されていないことを示します。メイン機能。これは、C の関数を使用する前に宣言または定義する必要があるために発生します。この場合、コンパイラは main 関数の現在のスコープ内で HelloWorld() の宣言または定義を見つけることができません。

解決策:

考えられる解決策は 2 つあります。この問題について:

  1. 関数 (プロトタイプ) の宣言: 関数プロトタイプを追加すると、完全な定義を提供せずに、その存在をコンパイラーに宣言します。 main 関数の前に次の行を配置します:
<code class="cpp">void HelloWorld();</code>
ログイン後にコピー
  1. Move Function Definition: あるいは、HelloWorld() の完全な定義を main 関数の前に移動することもできます。
<code class="cpp">#include <iostream>
using namespace std;

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

int main()
{
    HelloWorld();
    return 0;
}</code>
ログイン後にコピー

どちらのソリューションも、HelloWorld() 関数が呼び出される前にその存在をコンパイラに通知することでスコープの問題を解決します。

以上がHelloWorld 機能が動作しないのはなぜですか? C のスコープの問題を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート