我在a.cpp中的代码
#include<iostream>
int a=100;
int main()
{
return 1;
}
在b.cpp中代码
int a=0;
今天刚学了ODR,里面有一句非inline的函数或变量在整个程序中只能有一个定义,但是这里的a已经重定义了,为什么不报错呢
我在a.cpp中的代码
#include<iostream>
int a=100;
int main()
{
return 1;
}
在b.cpp中代码
int a=0;
今天刚学了ODR,里面有一句非inline的函数或变量在整个程序中只能有一个定义,但是这里的a已经重定义了,为什么不报错呢
程序的生成要经过名为链接的过程,如果你只是用a.cpp编译链接的话不会报错,如果两者一起链接就会报错