我在用c++写一个工程的时候把全局变量定义到一个public.h的头文件中,然后其他所有的cpp文件都包含这个头

件以便使用全局变量,但是没办法通过编译,提示变量重复定义,但是我只在public.h头文件中定义了一次这些变量啊,难道c++不支持全局变量么?... 件以便使用全局变量,但是没办法通过编译,提示变量重复定义,但是我只在public.h头文件中定义了一次这些变量啊,难道c++不支持全局变量么? 展开
 我来答
瞳中秀0Y
2014-05-19 · TA获得超过210个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:258万
展开全部
每包含一次头文件,就相当于该变量被声明了一次,所以出现变量重复定义的错误

你可以把这个变量定义在cpp文件中,其它文件要引用时,加上extern声明一下就可以了
比如,你在test1.cpp中声明了一个变量
int gnStep = 1;
在test2.cpp中这样使用:
extern int gnStep;

void func()
{
gnStep++;

}
更多追问追答
追问
按照你说的,我在 main.cpp 文件中(struct staff a),然后在public.h 添加了extern staff a, 但是报错,error C2146: syntax error : missing ';' before identifier 'a'    
fatal error C1004: unexpected end of file found
追答
extern staff a;
注意结尾处是分号,不是逗号
匿名用户
2014-05-19
展开全部
这个c语言的知识 都忘记了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式