我正在爲路由器編寫代碼,並且我已經將其編寫到了我應該爲路由表編寫代碼的部分。我做了一個類,它看起來像這樣:將一個全局變量傳遞給一個函數 - C++
//Global variables
unsigned char Dst_IP[4];
unsigned char Nxt_Hop[4];
int Mask;
int OutIF;
RTEntry::RTEntry(unsigned char *dst_IP, int mask, int outIF, unsigned char *nxt_Hop)
{
Dst_IP = dst_IP;
Mask = mask;
OutIF = outIF;
Nxt_Hop = nxt_Hop;
}
bool match(unsigned char *IPaddress)
{
bool isMatch = false;
if(IPaddress == dst_IP)
{
isMatch = true;
}
return isMatch;
}
我得到一個錯誤,當我嘗試歸因於dst_IP沒有在比賽功能的範圍內聲明的事實進行編譯。有沒有人有如何解決這個問題的想法?這可能與指針有關。我應該提一提,我對C++來說很新穎。
在此先感謝!
我看到「聲明」的唯一'dst_IP'在'RTEntry'的參數列表中。你是否想要改變傳入的內容(這就是你所做的)。 – crashmstr
爲什麼你會通過一個全球*全球*任何地方訪問?此外,全球的名稱是'Dst_IP',而不是'dst_IP'。另外,你爲什麼要使用全局變量? – thokra
'IPaddress == dst_IP' < - 那不符合你的想法。 –