[C/C++] Użycie wcześniejszej deficji w define

Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

[C/C++] Użycie wcześniejszej deficji w define

Post autor: miki999 »

Witam,

załóżmy, że mam kod:

Kod: Zaznacz cały

#define uwielbia   lubi
Chciałbym dodać kolejną definicję korzystającą z poprzedniej:

Kod: Zaznacz cały

#define miodzio   uwielbia##placki 
Czyli zakładając, że mam zmienną o nazwie lubiplacki, pisząc miodzio=0 chciałbym uzyskać w to miejsce lubiplacki=0, jednak kompilator traktuje to jako uwielbiaplacki=0, co skutkuje błędem, ponieważ taka zmienna nie istnieje.

Istnieje na to rada?
royas
Użytkownik
Użytkownik
Posty: 363
Rejestracja: 24 sie 2012, o 09:27
Płeć: Mężczyzna
Lokalizacja: Cieszyn
Pomógł: 80 razy

[C/C++] Użycie wcześniejszej deficji w define

Post autor: royas »

Chyba można jedynie coś takiego:

Kod: Zaznacz cały

#define uwielbia(x) lubi##x
#define miodzio uwielbia(placki)
Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

[C/C++] Użycie wcześniejszej deficji w define

Post autor: miki999 »

Ok, fajnie, dzięki.
Tylko co jeśli chcę dalej z tym jechać?
Kolejne odwołanie do miodzio zrobione w taki sposób już nie działa. :/
Awatar użytkownika
Zordon
Użytkownik
Użytkownik
Posty: 4977
Rejestracja: 12 lut 2008, o 21:42
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 75 razy
Pomógł: 910 razy

[C/C++] Użycie wcześniejszej deficji w define

Post autor: Zordon »

Najlepsza rada jaką możesz tutaj uzyskać: nie wolno tak używać definów. Jeśli to jest tylko zabawa językiem to ok, ale w prawdziwym programie należy użyć innych konstrukcji.
Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

[C/C++] Użycie wcześniejszej deficji w define

Post autor: miki999 »

Tzn. jakich?
Chciałbym, aby zmiana tylko jednego parametru odnosiła się do reszty.
ODPOWIEDZ