2012-01-20 13 views
6

Używam programu Visual Studio 2010 Express. Kiedy korzystać z niektórych nazw zmiennych, jak blisko”,«daleko»,«w»,«OUT», nie mogę skompilować: otrzymuję błędy składniowe znajdujące się po nazwie zmiennej używane . Przykład:Program Visual Studio nie zezwala na użycie niektórych nazw zmiennych

z = 1.0/(far - near); 

błąd:?.

error C2059: syntax error : ')' 

Jak mogę wyłączyć tę „funkcję”

Odpowiedz

12

far i near zostały wbudowane w kompilator słów kluczowych w czasach 16-bitowych one już nie istnieją i nie mają już żadnego znaczenia , ale nadal są zdefiniowane jako makra w systemie Windows nagłówki z powodu kompatybilności wstecznej.

Jeśli nie chcesz je tylko undefine je (lub nie zawierają nagłówki Windows):

#undef far 
#undef near 
+0

Dzięki, to działa. Czy istnieje opcja wyłączenia wszystkich takich słów kluczowych (to wszystko nie jest częścią standardu C++)? – user1161552

+1

@ user1161552: Tak, usuń z kodu kod "#include ". Nie są słowami kluczowymi, są to makra zdefiniowane w nagłówkach Windows. –

+0

Właśnie natknąłem się na twoją odpowiedź i chcę podkreślić, że byłby to doskonały przykład tego, do czego przeznaczona jest zarezerwowana przestrzeń implementacyjna (nazwy zaczynające się od dwóch podkreśleń). Microsoft ponosi winę za to, że nie przestrzega tego obszaru nazw. – datenwolf

Powiązane problemy