#include<iostream>
using namespace std;
int main()
{
int abc();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当编译器到达该行时int abc();,它正确地认为我们正在声明一个名为的函数abc,该函数不接受任何参数且其返回类型的类型为int.那么为什么编译器没有给我一个错误,因为我还没有定义一个名为的函数abc?
vll*_*vll 11
在没有定义函数的情况下声明函数不是错误.该函数可能已在另一个文件中定义.在C++中,每个编译单元(C++文件)都是单独编译的,之后链接在一起.
链接器也不显示错误,因为您不尝试使用该功能.如果您尝试使用它,链接器将搜索所有编译单元以获取定义,并在找不到定义时显示错误.