全局变量和全局常量在多文件中声明的方法
2017-02-17 10:23
232 查看
全局变量在多文件中声明的一种可能的方法是
在.h文件中声明
#define GLOBALS 语句
而全局常量的定义关于c++ const常量在.h文件中定义的问题这里面说的非常好
我采取的方法是第一种 vs2010 的编译器是要加static才能成功编译的
关于第二种方法
如果我才用将定义写入main.cpp中,在main.h中添加外部声明则是可以的,但是如果我将外部声明写入#else里面
则会报出找不到定义的错误
具体为什么是这样我还不知道,我认为可能跟编译器有关
在.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里面
则会报出找不到定义的错误
具体为什么是这样我还不知道,我认为可能跟编译器有关
相关文章推荐
- Java第11次作业:什么是继承?继承的好处?什么是覆写?super()?构造代码块?子父类初始化顺序? 抽象类能用final声明吗?final关键字声明类 方法 变量以及全局常量?抽象类的构造方法?
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!
- keil 中——C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法
- 定义C/C++全局变量/常量几种方法的区别
- 全局变量声明,定义与使用方法
- 定义C/C++全局变量/常量几种方法的区别
- PHP常量声明、使用方法|define()函数定义常量类似于全局
- C/C++定义全局变量/常量几种方法的区别
- python多文件使用同一个全局变量的定义和使用方法
- C/C++定义全局变量/常量几种方法的区别
- 定义C/C++全局变量/常量几种方法的区别(转)
- C/C++定义全局变量/常量几种方法的区别
- C/C++定义全局变量/常量几种方法的区别
- 定义C/C++全局变量/常量几种方法的区别
- 定义C/C++全局变量/常量几种方法的区别
- C/C++定义全局变量/常量几种方法的区别
- 【转】static和extern的区别;当使用另外一个文件中的变量、类、方法时,什么时候改用extern声明,什么时候该include?
- 全局变量的三种声明方法