0

为什么我不能访问 file.cpp 文件中定义的变量值。假设它与主要链接。棘手的部分是变量值被间接包含。主函数包括 header1.h,它反过来包括 file.h,其变量值为 extern。外部可以像这样在标头链中传播

1) 文件.h

extern int value;

2)文件.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;
}
4

1 回答 1

1

是的,extern可以通过这种方式传播。编译器只需要看到变量是extern在使用点声明的,通过哪个头文件都没有关系。头文件的内容只是由预处理器粘贴在源文件的顶部。所以编译器甚至不知道头文件。

但是,最好将编译源文件所需的所有头文件都包含在该头文件中。维护这样的代码要容易得多。

简单地说,包括在内file.hmain.cpp它对于你的代码的读者来说会更加直观。

于 2013-01-19T06:59:24.107 回答