请教各位大侠,用SDK编程如何设置全局变量?急

xiaoy 2001-11-24 09:00:54
我用SDK/C编程,我想把所有的全局变量都放在一个头文件中,然后在用到这些变量的地方
把该头文件包含进去。
但是我这样做的时候,系统总是告诉我:某个全局变量(比如m_bAreYouSure)已经在某个
(比如:abc.obj)中定义了。
这倒底是怎么回事,我应该怎么办呢?
...全文
258 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
icessl 2001-11-24
  • 打赏
  • 举报
回复
可以这样,在MYVAR.H里这样定义结构:
struct MYRECORD_t
{
.............;
};
extern struct MYRECORD_t x;

在 main.c 里把 x 定义好:
struct MYRECORD_t x;

这样,在任何文件里都可以访问结构x 了。
xiaoy 2001-11-24
  • 打赏
  • 举报
回复
谢谢!
全局变量的问题解决了。
现在还有一个问题:
如果我要定义一个自己的结构,而且这个结构也要在其他各个.C/.CPP文件中访问,
也就是说,也要成为全局的。
我应该怎么办呢?
icessl 2001-11-24
  • 打赏
  • 举报
回复
在 VC6.0 下,一个变量可以被声明两次,一次是 extern,另一次是置初值:
extern int a;
int a=23;
在其它编译器下是不是允许这样做我不知道,试试吧。实践是检验真理的唯一标准嘛。
vioy 2001-11-24
  • 打赏
  • 举报
回复
上面写的方法完全正确。
只不过对
#include "MYVAR.H"

int a=23,b=45; <- 有异议

有的C++可能不能给全局变量置初值。

因为全局变量只应在整个程序中定义一次(int a;这种形式)
但在编译的时候,编译器需要知道这个变量是被定义过的,就需要声明一下(extern int a;)

但定义和声明不能在同一个c或cpp文件中出现。
头文件其实可以看作c或cpp文件的一部分。
icessl 2001-11-24
  • 打赏
  • 举报
回复
例如你要在所有文件访问变量 a 和 b,你要写一个.h文件,如 MYVAR.H,里面有:
extern int a,b;
在所有 .c /.cpp 文件里都把 MYCAR.H 包括进来:#include "MYCAR.H"
然后选一个 .c/.cpp 文件,比如main.c,把 a b 定义下来,如:

#include "MYVAR.H"

int a=23,b=45;
.................

试试吧。

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧