头文件层次结构中的外部变量
extern variable in hierachy of header file
为什么我不能访问file.cpp文件中定义的变量值?假设它与main链接。棘手的是变量值是间接包含的。Main函数包括header1.h,它返回包含file.h,它具有变量值作为extern。extern是否可以在像这样的头链中传播
1) file.h
extern int value;
2) file.cpp
#include "file.h"
int value = 25;
3) header1.h #include "file.h"
const int const_value = 100;
4) main.cpp
#include "header1.h"
int main(char *argv[], int args) {
int result = value*10;
return result;
}
是的,extern
可以通过这种方式传播。编译器只需要看到变量在使用时被声明为extern
——通过哪个头文件并不重要。头文件的内容仅仅被预处理器粘贴到源文件的顶部。所以编译器甚至不知道头文件是什么。
但是,最好在该头文件中独立包含编译源文件所需的所有头文件。维护这样的代码要容易得多。
简单地说,将file.h
包含在main.cpp
中,对于代码的读者来说,这将更加直观。
相关文章:
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- 堆栈/帧指针作为外部变量
- const_cast const 方法中的"this"将"this"分配给外部变量?
- 外部变量的初始化
- 如何在命名空间中初始化外部变量
- 将全局外部变量的私有版本与 OpenMP 结合使用
- 使用外部变量会导致"unsigned char"错误LNK2001
- 为什么通过复制捕获 lambda 具有与外部变量相同的地址
- 我们是否应该在项目中包含的所有文件中声明外部变量
- 如何将 Wifi.localIP() 转换为字符串并将其存储到外部变量
- 具有仅在某些情况下引用外部变量的属性的类
- C 中的外部变量
- Xcode C++外部变量链接器错误
- 使用外部变量时的多重定义错误
- C 和 C++ 中的外部变量有什么区别
- 默认情况下,非常量变量不被视为外部变量吗?
- 当外部变量在其他文件中声明不同时,如何使G 产生警告
- 是初始化为其默认值的外部变量
- 将外部变量传递给类 c++
- C++中有更多的类和外部变量