我在一个.cpp文件中有一个变量定义。
(file1.cpp)
int N;
....
N =3;
(目录/ file2.cpp)----> file2.cpp在另一个目录中。
extern int N;
cout << n << endl ; -----> It is printing 0.
它应该打印3..right?我在做什么错误..请让我知道。目录结构是:
(主目录)
file1.cpp directory
(目录)
file2.cpp
谢谢, 阿维纳什
答案 0 :(得分:0)
在一个文件中,此变量应按原样定义:
int N;
在其他人中extern
(最好使用头文件来包含这样的声明),即:
extern int N;
目录结构并不重要,只需将cpp文件编译在一起以允许链接器解析连接。
答案 1 :(得分:0)
要使其工作,您可以使用以下方法:
头文件,提供声明,以便其他翻译单元可以轻松导入它:
// dir1/file1.hpp
extern int N;
具有变量定义的实现文件:
// dir1/file1.cpp
int N = 3;
使用变量的示例客户端:
// main.cpp
#include "dir1/file1.hpp"
#include <iostream>
int main () {
std::cout << N << std::endl;
return 0;
}
请注意,dir1 / file1.hpp
中省略了包含保护