我在用c++写一个工程的时候把全局变量定义到一个public.h的头文件中,然后其他所有的cpp文件都包含这个头
件以便使用全局变量,但是没办法通过编译,提示变量重复定义,但是我只在public.h头文件中定义了一次这些变量啊,难道c++不支持全局变量么?...
件以便使用全局变量,但是没办法通过编译,提示变量重复定义,但是我只在public.h头文件中定义了一次这些变量啊,难道c++不支持全局变量么?
展开
2个回答
展开全部
每包含一次头文件,就相当于该变量被声明了一次,所以出现变量重复定义的错误
你可以把这个变量定义在cpp文件中,其它文件要引用时,加上extern声明一下就可以了
比如,你在test1.cpp中声明了一个变量
int gnStep = 1;
在test2.cpp中这样使用:
extern int gnStep;
void func()
{
gnStep++;
}
你可以把这个变量定义在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语言的知识 都忘记了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询