Home  >  Article  >  Backend Development  >  Solve C++ compilation error: 'function' was not declared in this scope

Solve C++ compilation error: 'function' was not declared in this scope

WBOY
WBOYOriginal
2023-08-27 08:51:151569browse

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

Solution to C compilation error: 'function' was not declared in this scope

When programming in C, we often encounter some compilation errors, one of which is common The error is "'function' was not declared in this scope". This error means that the program attempted to use an undeclared function. In this article, I will explain the cause of this error and provide some solutions.

First, let's look at a simple code example:

#include <iostream>

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

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

When we try to compile this code, the compiler will report an error and display "'sayHello' was not declared in this scope ". This is because we called an undeclared function sayHello in the main function.

The reason why this error occurs is that the compiler parses the code in top-down order. Before we call the function sayHello, the compiler does not know the existence of this function, so an error will be reported.

To solve this error, we need to declare the function sayHello before the main function. You can add a function prototype before the main function:

#include <iostream>

void sayHello(); // 函数原型

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

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

In the above code, we added the function prototype void sayHello(); before the main function. This function prototype tells the compiler that there is a function called sayHello before the main function. Its return type is void and has no parameters.

Now that the compiler knows the existence of the function sayHello, we can call it in the main function. Recompile the code. This time the "'sayHello' was not declared in this scope" error should no longer appear.

In addition to adding a function prototype, another way to solve this error is to move the definition of the function before the main function. This way, the compiler will see the function definition before compiling the main function.

#include <iostream>

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

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

In the above code, we moved the definition of the function before the main function, so that the compiler will see the definition of the function sayHello first and will no longer report an error.

To summarize, when the error "'function' was not declared in this scope" occurs, we need to declare or define the function before calling it. This error can be solved by adding a function prototype or moving the function definition before calling the function. In this way, the compiler will know the existence of the function and will not report an error. Hope this article helps to solve C compilation errors.

The above is the detailed content of Solve C++ compilation error: 'function' was not declared in this scope. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn