我正在研究ns2.35,但我想从程序connector.cc访问一个变量 #include" packet.h" #include" connector.h"
int attacker = 0;
static class ConnectorClass : public TclClass {
到aodv.cc
#include <connector.h>
extern int attacker;
然后
if (malicious == 1000){
printf("\nDROPD\n");
drop(p, DROP_RTR_ROUTE_LOOP);
}
printf("\nAttacker: %d\n", &attacker);
例如我声明了一个变量int attacker = 0;在connector.cc中,我想在aodv.cc中访问此变量 我怎样才能做到这一点?我无法使用上面的代码。我正在使用c ++。
提前谢谢你:)
答案 0 :(得分:0)
在C ++中,默认情况下变量链接是内部的。
这意味着您无法通过声明extern
您想要使用的变量来访问不同翻译单元中的变量。
如果要访问变量,则必须在定义变量的转换单元中声明extern
。
实现此目的的最常见方法是将extern
声明(但不是任何定义)添加到标题中,并包括变量的使用位置和定义位置。
(并且您的printf
错了 - 在打印int
时,您不应该使用address-of运算符。)