我正在编写一些C ++代码我发现一件很奇怪的事情像下面的代码一样,即使函数的声明和定义不同,它也可以很好地工作
有人知道这怎么可能吗?建立cmd:g++ main.cpp foo.cpp
// main.cpp
#include <iostream>
char foo();
int main() {
foo();
}
// foo.cpp
#include <iostream>
void foo() {
std::cout << "I'm foo" << std::endl;
}
编译成功,因为您没有在main()中使用返回类型,它可以工作。它也基于编译规则。
链接器可能不允许并引发错误。我正在使用VS2019,但出现以下链接错误(错误LNK2019:未解决的外部符号)。