Ein Makro der seltenen Art?
-
HeroHolger schrieb:
aHsDyn.Pos.Lat = InterpolateAngleData(aIt_alt->second.Pos.Lat,aIt_neu->second.Pos.Lat ); aHsDyn.Pos.Lon = InterpolateAngleData(aIt_alt->second.Pos.Lon,aIt_neu->second.Pos.Lon );[...]
#define INTERPOL_ANGLE(NAME) aHsDyn.##NAME = InterpolateAngleData((double)aIt_alt->second.##NAME,(double)aIt_neu->second.##NAME ) INTERPOL_ANGLE(Pos.Lat);Was erhoffst du dir von dem ##-Operator? Lass den mal weg.
-
HeroHolger schrieb:
Aber ich bekomme den Fehler(3x) für das makro
error: pasting "." and "Pos" does not give a valid preprocessing token
ich vermute, dass bedeutet, dass die Kombination ".##NAME" nicht zulässig ist...aber warm nicht?
Die Fehlermeldung ist eigentlich eindeutig. Die einzigen Token, die mit . beginnen, sind die . und .* Operatoren, die ... Ellipse, sowie bestimmte (Gleitkomma-)Literale.
Verlier einfach den ##-Operator an dieser Stelle.
-
Ansonsten schreibst Du dreimal das Makro im Text.
Eine Funktion/Mehtode ist definitiv der bessere Weg.
Makros sind mies (persönliche Meinung und Erfahrung)
Makros & objektorientierte Programmierung sind scheisse.
-
Was erhoffst du dir von dem ##-Operator? Lass den mal weg.
schaust du hier
http://gcc.gnu.org/onlinedocs/cpp/Concatenation.html#Concatenationso in etwa will ich das haben. ohne ## kommst du m.E. nicht weit.
Wenn du ohne ## arbeitest weiß der precompiler garnicht, was du machen willst.
-
HeroHolger schrieb:
ohne ## kommst du m.E. nicht weit.
Tu's doch einfach...

-
@Swordfish: oha, manchmal ist die Lösung doch so nahe. er scheint das wirklich zu akzeptieren ^^
-
HeroHolger schrieb:
Was erhoffst du dir von dem ##-Operator? Lass den mal weg.
schaust du hier
http://gcc.gnu.org/onlinedocs/cpp/Concatenation.html#Concatenationso in etwa will ich das haben. ohne ## kommst du m.E. nicht weit.
Wenn du ohne ## arbeitest weiß der precompiler garnicht, was du machen willst.
Welcher Precompiler?
Der Link beantwortet übrigens nicht die Frage.
-
HeroHolger schrieb:
Was erhoffst du dir von dem ##-Operator? Lass den mal weg.
schaust du hier
http://gcc.gnu.org/onlinedocs/cpp/Concatenation.html#ConcatenationDu bist ja mal ein Scherzkeks

-
ok
Danke erstmal nochmal an Alle die mir geholfen!
Thread kann zugemacht werden.
Der Fehler saß wie üblich vorm Monitor ^^
-
HeroHolger schrieb:
Der Fehler saß wie üblich vorm Monitor ^^
Die kanonische Variante wäre "Fehler existiert zwischen Tastatur und Sessel".