两个cpp文件如下:
a.cpp:
const int x = 1;
b.cpp:
#include<iostream>
using namespace std;
extern const int x;
int main(){
cout<<x<<endl;
return 0;
}
编译两个cpp文件,会出现链接错误:x无法解析。 出错原因是C++规定const声明的常量为局部量,不能被外部文件引用。而在C中则规定const常量为全局量。 可以将a.cpp改为
extern "C"{
const int x = 1;
}
extern "C" 申明该块是按C方式连接,解决错误。