ホームページ  >  記事  >  バックエンド開発  >  C++ コンパイル エラーの解決: '関数' がこのスコープで宣言されていませんでした

C++ コンパイル エラーの解決: '関数' がこのスコープで宣言されていませんでした

WBOY
WBOYオリジナル
2023-08-27 08:51:151569ブラウズ

解决C++编译错误:\'function\' was not declared in this scope

C コンパイル エラーの解決策: '関数' はこのスコープで宣言されていませんでした。

C でプログラミングする場合、いくつかのコンパイル エラーが頻繁に発生します。そのうちの 1 つは一般的なものです。エラーは「'関数' はこのスコープで宣言されていません」です。このエラーは、プログラムが宣言されていない関数を使用しようとしたことを意味します。この記事では、このエラーの原因といくつかの解決策を説明します。

まず、簡単なコード例を見てみましょう:

#include <iostream>

int main() {
    sayHello(); // 调用一个未声明的函数
    return 0;
}

void sayHello() {
    std::cout << "Hello, World!" << std::endl;
}

このコードをコンパイルしようとすると、コンパイラはエラーを報告し、「'sayHello' はこのスコープで宣言されていません」と表示します。 。これは、メイン関数で宣言されていない関数sayHelloを呼び出したためです。

このエラーが発生する理由は、コンパイラーがコードを上から下の順序で解析するためです。 SayHello 関数を呼び出す前は、コンパイラはこの関数の存在を認識していないため、エラーが報告されます。

このエラーを解決するには、main 関数の前に関数 SayHello を宣言する必要があります。 main 関数の前に関数プロトタイプを追加できます。

#include <iostream>

void sayHello(); // 函数原型

int main() {
    sayHello(); // 调用函数
    return 0;
}

void sayHello() {
    std::cout << "Hello, World!" << std::endl;
}

上記のコードでは、main 関数の前に関数プロトタイプ voidsayHello(); を追加しました。この関数プロトタイプは、main 関数の前にsayHello という関数があり、戻り値の型が void でパラメーターがないことをコンパイラーに伝えます。

コンパイラは関数sayHelloの存在を認識したので、それをmain関数で呼び出すことができます。コードを再コンパイルすると、「'sayHello' はこのスコープで宣言されていません」というエラーは表示されなくなります。

関数プロトタイプを追加することに加えて、このエラーを解決するもう 1 つの方法は、関数の定義を main 関数の前に移動することです。こうすることで、コンパイラは main 関数をコンパイルする前に関数定義を確認します。

#include <iostream>

void sayHello() {
    std::cout << "Hello, World!" << std::endl;
}

int main() {
    sayHello(); // 调用函数
    return 0;
}

上記のコードでは、関数の定義を main 関数の前に移動しました。これにより、コンパイラは関数 SayHello の定義を最初に参照し、エラーを報告しなくなります。

要約すると、「'関数' はこのスコープで宣言されていません」というエラーが発生した場合、関数を呼び出す前に関数を宣言または定義する必要があります。このエラーは、関数プロトタイプを追加するか、関数を呼び出す前に関数定義を移動することで解決できます。このようにして、コンパイラは関数の存在を認識し、エラーを報告しなくなります。この記事が C コンパイル エラーの解決に役立つことを願っています。

以上がC++ コンパイル エラーの解決: '関数' がこのスコープで宣言されていませんでしたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。