Dyrektywy preprocesora

waldeq

Użytkownik
Dołączył
Styczeń 21, 2007
Posty
70
Mam problem z jednym z zadań z Symfonii C++. Muszę zrobić tak by w zależności od wybranej wartości w nazwie "WERSJA_EKSPERYMENTU", wartość nazwy "TYP_SPREZARKI" była 3000 lub 2050 czy jeśli wybrano nieistniejącą opcję wywaliło błąd kompilacji. No i właśnie zawsze mi odnosi się do tego trzeciego ruchu. Nie wiem mnie to trochę zakłopotało. :eek:laboga:
O to kod, który napisałem:
Kod:
//SYMFONIA C++ STANDART STR. 217 ĆW. XV



#include <iostream>

#include <conio.h>

using namespace std;



#define GRUDZIEN_2006 1

#define SIERPIEN_2005 2



#define WERSJA_EKSPERYMENTU 1

 

#if (WERSJA_EKPERYMENTU==1) 

#define TYP_SPREZARKI 3000 

#elif (WERSJA_EKPERYMENTU==2) 

#define TYP_SPREZARKI 2050 

#else 

#error "Nieokreslony zostal typ eksperymentu" 

#endif



int main()

{

    cout<<TYP_SPREZARKI;

    getch();

}
 

waldeq

Użytkownik
Dołączył
Styczeń 21, 2007
Posty
70
Treść błędu to
Kod:
"Nieokreslony zostal typ eksperymentu"
taki jaki podałem. Jeszcze mi wywala, że "TYP_SPREZARKI" jest niezadeklarowane. W ogóle mi nie przechodzi do żadnej linijki, w której jest dyrektywa "#define TYP_SPREZARKI". Jakoś nie korzystam zbyt chętnie z dyrektyw preprocesora dlatego nie wiem jak to rozwiązać w inny sposób. Coś z użyciem operatora defined, nie wiem.
 

waldeq

Użytkownik
Dołączył
Styczeń 21, 2007
Posty
70
Nie no tyle sie zastanawiać nad tym a to taki głupi błąd. Zgubiłem po prostu jedną literę w nazwie TYP_EKSPERYMENTU. I przez tyle czasu tego dostrzec nie moglem. Jak patrzyłem na podpowiedź "chmurka" to sie zastanawiałem o co mu chodzi. Zerknąłem tylko nie zauważając tej brakującej litery. Później sam do tego doszedłem ale dam plusa za dobrą podpowiedź. :glupek2:
 
Do góry Bottom