提问人:Ravi Raval 提问时间:3/12/2014 最后编辑:praxmonRavi Raval 更新时间:3/12/2014 访问量:1175
如何设置外部变量的值?
How to set value of extern variable?
问:
我正在使用 glomosim 模拟器进行网络练习。 网络层下路由协议的其中一个文件有如下行。文件名是“ARAN.pc”(我从互联网上得到了这个文件,我想将模拟器中默认设置的 aodv 协议替换为自动路由协议,即 ARAN):
extern int maliciousNodesPercentage; //defined and set in driver.pc
当我编译模拟器(使用bat文件)时,显示此错误:
*call pcc -user_main -Zi -Ox -I..\include\ -clock longlong -o ..\bin\glomosim driver.pc temp.lib
tmp-3572-0.c
driver.init.c
temp.lib(aran.obj) : error LNK2001: unresolved external symbol _maliciousNodesPercentage
..\bin\glomosim.exe : fatal error LNK1120: 1 unresolved externals*
当我打开文件时,我没有找到恶意NodesPercentage。driver.pc
如何设置变量的值?
答:
必须声明一个外部变量。如果你只是使用它,ust 会告诉编译器这个变量是在某个其他模块中定义的,所以没有为它分配存储。在链接阶段,链接器将输入变量的实际地址。由于您没有在任何地方定义它,因此您将得到一个未解析的符号。somewhere
extern int maliciousNodesPercentage
例如,在您将定义为全局变量时:main
int maliciousNodesPercentage;
在所有其他模块(或头文件中)中,您可以执行以下操作:
extern int maliciousNodesPercentage;
然后,您可以像访问任何其他全局变量一样访问它。
评论