📌  相关文章
📜  我们可以在C++中调用未声明的函数吗?(1)

📅  最后修改于: 2023-12-03 15:25:42.157000             🧑  作者: Mango

我们可以在C++中调用未声明的函数吗?

在C++中,函数必须要声明后才能使用。声明告诉编译器函数的名称、参数和返回类型等信息。这使得编译器能够验证函数的使用是否正确。因此,通常情况下不应该在C++中调用未声明的函数。

示例代码:

int main() {
    foo(); // Error: 'foo' was not declared in this scope
    return 0;
}

上面的代码会报错,因为foo函数在使用之前没有进行声明。

但是,有一种情况下可以在C++中调用未声明的函数,即如果这个函数已经在其他文件中进行了定义,并且链接器可以将这个函数的定义和调用链接起来。这种情况通常发生在相互依赖的模块之间。

示例代码:

// a.cpp
int foo();

int main() {
    foo(); // okay, 'foo' will be resolved by the linker
    return 0;
}

// b.cpp
int foo() {
    return 42;
}

在上面的代码中,a.cpp文件中声明了foo函数,但是它的定义在b.cpp文件中。如果我们编译并链接这两个文件,程序就可以成功运行,因为链接器将foo的定义和main函数的调用链接起来。

总之,正常情况下不应该在C++中调用未声明的函数,但是如果这个函数的定义已经在其他文件中进行了定义,可以通过链接器将它们链接起来。