#include<iostream>
using namespace std;
int main()
{
int abc();
return 0;
}
当编译器到达 int abc();
行时,它正确地认为我们正在声明一个名为 abc
的函数,该函数不接受任何参数并且其返回类型是int类型。那为什么编译器不给我一个错误,因为我没有定义一个名为 abc
的函数?
最佳答案
声明一个函数而不定义它不是错误。该函数可能已在另一个文件中定义。在 C++ 中,每个编译单元(C++ 文件)都是单独编译的,然后链接在一起。
链接器也不会显示错误,因为您没有尝试使用该函数。如果您尝试使用它,链接器将在所有编译单元中搜索定义,并在找不到定义时显示错误。
关于c++ - 为什么下面的程序可以编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50965900/