[英]C++ function`s declaration and definition are different but it works well
我正在写一些 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:未解析的外部符号)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.