cpp中的全局变量应该在哪里定义?
真正发现这个问题,是在写五子棋的时候,想在.h中设一个全局变量表示难度difficulty
,然后在.cpp中修改difficulty
,结果发现报了错。查阅后发现是重定义的问题。在.h中定义了difficulty
,再在多个cpp里修改的时候,compiler就不知道用哪个了,然后就是经典的LNK2019(杀气重重
最后还是选择在h中声明,在一个制定的cpp中定义。这样避免了二义性
总之,假设工程中的多个源文件需要这个全局变量,那么,就任找一个a.h头文件,用extern去声明这个变量,然后源文件a.cpp中去定义它(注意,这个是真正定义的地方,不再需要带extern),最后在需要使用这个全局变量的源文件中include"a.h"
就OK了(其他的cpp中为了程序的可读性, 最好还是加上extern声明)
cpp中的全局变量应该在哪里定义?
http://baokker.github.io/2022/01/18/cpp中的全局变量应该在哪里定义?/