C++头文件中常量和静态常量有什么区别?
在头文件里
----------------
const int AAA = 1;
----------------
static const int AAA = 1;
----------------
#ifndef M_AAA
const int AAA = 1;
#endif
----------------
这三个有什么区别?
[解决办法]
1. const int AAA = 1; 说明是常量,外部文件可以extern访问
2.static const int AAA = 1; 仅本文件内部可以访问
3.
#ifndef M_AAA
const int AAA = 1;
#endif
根据宏的定义与否,与1的情况完全一样。
[解决办法]
+1
[解决办法]
静态变量 这种方式定义的变量能被本文件内的任何函数使用。其他文件中的函数不可使用。
常量是定以后,在程序运行中不能被改变
#ifndef M_AAA
const int AAA = 1;
#endif
#ifndef M_AAA 用来测试M_AAA有没有被宏定义过,如果没有则对#ifndef和#endif之间的代码进行编译
[解决办法]
#ifndef M_AAA
const int AAA = 1;
#endif
这样做可防止头文件重复引用问题