2012-01-20 62 views
6

我正在使用Visual Studio 2010 Express。當我使用某個變量的名稱,如「靠近,‘遠’,‘IN’,‘OUT’,我不能編譯:我得到位於中使用的變量名後的語法錯誤 例:Visual Studio不允許使用某些變量名稱

z = 1.0/(far - near); 

錯誤:?

error C2059: syntax error : ')' 

如何禁用這個「功能」

回答

12

farnear是內置的編譯器關鍵字後面的16位天他們不再存在,他們不再有任何意義,但它們仍被定義爲Windows中的宏出於向後兼容性的原因。

如果你不想讓他們,只是他們取消定義(或不​​包括Windows頭):

#undef far 
#undef near 
+0

謝謝,它的工作原理。是否有關閉所有這些關鍵字的選項(這些都不是C++標準的一部分)? – user1161552

+1

@ user1161552:是的,從您的代碼中刪除說#include '的行。它們不是關鍵字,它們是Windows頭文件中定義的宏。 –

+0

剛剛遇到你的答案,並想指出,這將是一個完美的例子,實現保留名稱空間(名稱以兩個下劃線開頭)是爲了什麼。微軟在這裏責怪不遵守該名稱空間。 – datenwolf

相關問題