2013-12-22 92 views
-1
if(aptr[i] < bptr[i]) 
    a->used = BI_LESS_THAN; 
else 
    return BI_GREATER_THAN; 

我找不出爲什麼這段代碼不會編譯。它表示它在else的開始之前期待一個'}'。這在C中無效嗎?我正在使用GCC編譯Netbeans。if else else語法錯誤C

+1

錯誤不在代碼片段中 –

+3

它可能在周圍的代碼中。那部分很好。編譯器有時會給你的行號不是_really_錯誤所在。就在它發現第一個不一致時,可以這麼說。 – Guido

+0

什麼是您的BI_LESS_THAN定義? – buc

回答

4

該錯誤與您的BI_LESS_THAN宏格式不正確一致。在文件實際編譯之前,C預處理器將用您定義的任何內容替代BI_LESS_THAN,完全按照它的寫法。這就是爲什麼編譯器錯誤似乎有點神祕。

+1

我不小心在宏中包含了一個分號。 – chasep255

+0

是的,第二個分號產生一個空語句,所以在'if'和'else'之間有兩個語句。 –