2013-02-13 168 views
0

我想將結構傳遞給我的函數,但我無法弄清楚。我的代碼如下C++將結構傳遞給函數

struct box 
{ 
char sMaker[40]; 
float fHeight; //The height of the box 
float fWidth; //The width of the box 
float fLength; //The length of the box 
float fVolume; //The volume of the box 
}; //end box 

void calcVolume (box *p) 
{ 
p‐>fVolume = p‐>fWidth * p‐>fHeight * p->fLength; 
} //end calcVolume 

它返回p-是一個未聲明的標識符的錯誤。我真的很陌生,爲什麼它不編譯。

非常感謝。

+1

該代碼是正確的AFAICT,雖然你可能想要一個引用,雙打和一個'std :: string'。 – chris 2013-02-13 22:54:14

+3

如果這應該是C++ OOP,那麼我也會讓它成爲一個具有返回音量的成員函數的類。我也擺脫了匈牙利的符號。布萊什。 – 2013-02-13 22:55:09

回答

4

看你的破折號之一(-)「」:

preferred charset: unicode (Unicode (ISO10646)) 
code point in charset: 0x2010 
name: HYPHEN 
general-category: Pd (Punctuation, Dash) 

更換他們都有一個負號。

+0

+1有關詳細說明。我只想添加gcc的輸出:http://ideone.com/vVa6Nw – LihO 2013-02-13 23:09:46

+0

由於某種原因,當我輸入高於我所擁有的完全相同的計算值時,它的工作原理。我猜它在visual studio中有一些bug。 – user2070244 2013-02-14 00:06:44

1

該錯誤可能是在調用calcVolume(或其他地方完全)的代碼中。你需要這樣稱呼它:

box b; 
calcVolume(&b); 

編輯:沒關係,真正的錯誤是連字符( - )而不是減號( - )。

2

檢查您的源文件是純ASCII。在我看來,您正在使用到位「減」號的一些擴展的Unicode字符 - 使用emacsdescribe-char