踩坑 |
您所在的位置:网站首页 › c语言变量重复定义怎么解决 › 踩坑 |
今天在一个.h头文件中定义了一个全局变量,然后在两个.cpp文件中引用了该头文件,导致变量重复定义问题。 我们知道,变量有声明和定义,声明可以有多次,但是定义只能有一次。打个比方: //a.h文件 int a; 然后我们在b.cpp和c.cpp中引用a.h文件,这样就会出现重复定义。int a;会在每一个文件中重新定义一次 而我们如果再前边加上关键字extern,那么就代表extern int a为一个关于a的声明,此时并没有定义,这时我们就在b.cpp和c.pp中引用a.h不会报错,因为声明可以多次。 举个例子: //a.h #include extern int a void fun(); //a.cpp #include "a.h" void fun() { printf("%d\n", a); } #include "a.h" int a = 1; //有且只有一个引用a.h的cpp文件中定义全局变量a int main () { printf("%d\n", a); a = 2; fun(); return 0; }此时输出结果为 1 2转载请注明出处!!! 如果有写的不对或者不全面的地方 可通过主页的联系方式进行指正,谢谢 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |