最近我在学图论时,定义一个全局数组,编译链接时出现了这个错误,困惑了我好久。
这个本质上是链接错误。 直到我看见这个
【【C++教程】国外大佬C++技术教程,油管百万级收藏,学C++看这个就够了!(中文字幕)】 https://www.bilibili.com/video/BV1oD4y1h7S3/?p=15&share_source=copy_web&vd_source=e3810583151437e80cf4523aa7018094
视频明白c++这个语言是以文件为翻译源,它区分文件形式是以后缀名来区分的,比如.cpp,.h文件,编译器的工作就是把源文件翻译成目标文件即.obj文件(本质就是二进制代码)
而链接的过程就是把不同的obj文件汇总成一个.exe文件,这就不可避免的一个变量,函数重复使用,比如a.h定义一个全局变量,b.cpp,c.cpp都要用,
a.h
b.cpp
c.cpp
小结就是:声明可以拷贝多次,定义只能拷贝一次,本质就是声明不分配内存。