Mam makro tak (nie dokładnie, ale funkcja jest dość równoważne):Różnice w Makro operatora ## konkatenacji między visual C++ i gcc
#define STRUCTMEMBER(Member,Value) GlobalStructInstance. ## Member = Value
...
STRUCTMEMBER(Item,1);
Działa to doskonale w Visual C++, ale gcc 3.4.5 (MingGW) generuje następujący błąd:
pasting "." and "Item" does not give a valid preprocessing token
Dzieje się tak również, gdy korzystam z operatora "->". Nie znalazłem wskazówek dotyczących konkatenacji, że korzystanie z tych operatorów jest zabronione.
Czy ktoś ma pomysł?
http://gcc.gnu.org/ml/gcc-help/2003-04/msg00213.html Jakiekolwiek użycie? – AakashM
Przestrzenie celowe? – EFraim
cóż, czytałem dokumentację gcc i dlatego wyjaśniłem ## usuwając wszystkie spacje, więc po prostu wstawiłem je dla czytelności. Moja pierwsza wersja nie ma spacji ... –