提问人:Finlay Lifny 提问时间:2/12/2014 最后编辑:Finlay Lifny 更新时间:2/17/2014 访问量:1101
链接外部变量 c++ 时出错 [duplicate]
Error in linking external variable c++ [duplicate]
问:
我有包含头文件的程序。
函数的实现位于其他文件中。main.cpp
cpp
答:
0赞
Sanjaya R
2/12/2014
#1
您是否在 main 中声明了变量的实际存储? 在下面的示例中,外部变量在 common.h 中声明。 但是这个变量的实际存储在 main.cpp 中。
==> common.h <==
extern int var1, var2, var3, var4;
==> main.cpp <==
#include <iostream.h>
#include "common.h"
#include "other.h"
int var1, var2, var3, var4 = 4; /* the actual storage */
int main(int argc, char **argv)
{
std::cout << sumVars() << endl;
}
==> other.h <==
int sumVars();
==> other.cpp <==
#include "common.h"
int sumVars() {
return var1 + var2 + var3 + var4;
}
评论
0赞
Finlay Lifny
2/13/2014
它类似于我的代码,但我在 main() 中声明了这些变量;如何在另一个 CPP 文件中声明的另一个函数中使用它们,而无需像您那样使这些变量成为全局变量?利夫尼
0赞
Sanjaya R
2/13/2014
如果你在 main 中声明了它们,那么它们就是局部变量(在堆栈上),即使在同一个源文件中也不能被其他函数直接使用,也不能有外部链接。
评论
main()
extern [var-type] [var-name]
[var-type] [var-name]