c中全局变量,全局结构体使用

1)A中定义的函数,如何在B中调用?

如果有头文件,在头文件中声明,在B文件中#include头文件就可以了。

如果是在.c文件中声明的,在B中加extent声明:extern void timer_hw_init(void);

2)A中定义的结构体及变量,如何在B中调用?

1> 对于全局结构体定义,首先在Globals.h头文件中构造结构体,用typedef方式,如:

typedef struct tagLineType
{
   int ID;
   CString Type;
   double r0;
   double x0;
}LINETYPE;    // 名称可随便
而后,在Globals.cpp文件中:
LINETYPE *lineType = NULL;    // 注意,在这里初始化
而后,回到Globals.h头文件:
extern LINETYPE *lineType;    // 注意,这里不能再初始化


2> 对于普通全局变量(如int型)定义,首先在Globals.cpp中:
int iTime = -1;    // 注意,在这里初始化
而后,在Globals.h头文件中:
extern int iTime;    // 注意,这里不能再初始化


3> 对于全局常量定义,首先再Globals.cpp中:
const int UB = 10;
而后在Globals.h头文件中:
extern const int UB;
以上是第一种方法,是我自己总结试验成功的。用该方法定义完毕后,无论哪个.cpp文件要用到全局变量,只需在该.cpp文件中#include "Globals.h"即可,而无需再在.cpp文件中extern,所有全局变量、全局常量、全局结构体都是可见的。该方法的总体思路是,象theApp那样,在.cpp中定义,在.h头文件中extern声明。另外要注意,变量的初始化一定在Globals.cpp文件中,而不能在Globals.h头文件中。

结构体:每个用到这个全局结构体的文件都要包含typedef的头文件,声明该结构体要在.c文件中,而且不能包括在函数内。

  • 10
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值