我已经在 C++17 编译器 (Coliru) 中编译并运行了以下程序。在程序中,我声明了一个extern
变量,但没有定义它。但是,编译器不会给出链接器错误。
#include <iostream>
extern int i; // Only declaration
int func()
{
if constexpr (true)
return 0;
else if (i)
return i;
else
return -1;
}
int main()
{
int ret = func();
std::cout<<"Ret : "<<ret<<std::endl;
}
为什么编译器不给出链接器错误?