error:LNK2005 已经在*.obj中定义 的接近方法

记录一下自己出现的这个问题
再noise.cc 中定义了 int poly20[] 数组和 int generateNoise 函数。
在头文件noise.h中声明int generateNoise 函数,并且在主函数中include noise.h,调用generateNoise 函数
发现连接器报错。 error:LNK2005 已经在*.obj中定义 poly20 和generateNoise

noise.cc中在int 前面添加 static 解决,不懂原理。。。

(1)在修饰变量的时候,static 修饰的静态局部变量只执行初始化一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。
(2)static 修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是 extern 外部声明也不可以。

可能是只能被初始化一次吧

猜你喜欢

转载自blog.csdn.net/weixin_39987672/article/details/121610427