C语言中的静态全局变量问题

在两个.cpp文件中定义staticinta静态全局变量,然后在第三个文件中引入,编译时报错:a重定义。看书上说静态全局变量的作用域限制在一个文件模块中了,度娘也说多个不... 在两个.cpp文件中定义static int a静态全局变量,然后在第三个文件中引入,编译时报错:a重定义。看书上说静态全局变量的作用域限制在一个文件模块中了,度娘也说多个不同的源文件中定义同名的静态全局变量是可以得,但实际是不行。有没有谁知道这是为什么。

PS:IDE是VS2015。
展开
 我来答
匿名用户
2015-03-24
展开全部
helloworld.cpp文件引用了one.cpp与two.cpp两个文件,相当于在同一文件中定义两次static int a
追问
你的意思是说引入.cpp文件就将三个文件变成一个文件了,那怎么才能不变成一个文件?
wuiiao333
2015-03-24 · TA获得超过799个赞
知道小有建树答主
回答量:666
采纳率:0%
帮助的人:207万
展开全部
问题在于第3个Hello.cpp中,一般不适用include包含文件。只包含头文件

因为多个源文件只能定义一个变量。
你包含一个cpp就相当于多次定义
追问

还是不行。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b7cb965
2015-03-24 · TA获得超过407个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:187万
展开全部
估计你定义在头文件中而不是源文件中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式