全局变量和全局常量在多文件中声明的方法

全局变量在多文件中声明的一种可能的方法是

在.h文件中声明

#ifdef GLOBALS
bool m_debug =  false;

int m_selectedPerson = -1;
int m_numPersons = 0;

int m_gui_faces_left = -1;
int m_gui_faces_top = -1;

std::vector<int> m_latestFaces ;

// Position of GUI buttons:
cv::Rect m_rcBtnAdd;
cv::Rect m_rcBtnDel;
cv::Rect m_rcBtnDebug;



#else
extern bool m_debug;

extern int m_selectedPerson;
extern int m_numPersons;

extern int m_gui_faces_left;
extern int m_gui_faces_top;

extern std::vector<int> m_latestFaces ;

// Position of GUI buttons:
extern cv::Rect m_rcBtnAdd;
extern cv::Rect m_rcBtnDel;
extern cv::Rect m_rcBtnDebug;

extern enum MODES{MODE_STARTUP, MODE_DETECTION, MODE_COLLECT_FACES, MODE_TRAINING, MODE_RECOGNITION, MODE_DELETE_ALL,MODE_END};
extern MODES m_mode;

#endif
然后在某一个.c文件中添加

#define GLOBALS 语句


而全局常量的定义关于c++ const常量在.h文件中定义的问题这里面说的非常好

我采取的方法是第一种   vs2010 的编译器是要加static才能成功编译的


关于第二种方法

如果我才用将定义写入main.cpp中,在main.h中添加外部声明则是可以的,但是如果我将外部声明写入#else里面

则会报出找不到定义的错误

具体为什么是这样我还不知道,我认为可能跟编译器有关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值