Was ist das für ein Define?
-
Hallo Forum,
was ist das für ein Define? (Aus AtlCom.h, wurde vom Visual Studio in mein ATL Projekt eingefügt.)
#define DECLARE_PROTECT_FINAL_CONSTRUCT()\ void InternalFinalConstructAddRef() {InternalAddRef();}\ void InternalFinalConstructRelease() {InternalRelease();}Was mich stutzig macht sind die "\" Zeichen. Ich kenne das aus anderen Sprachen als verhinderte NewLines. Ist das Standard?
Bommel
-
Das ist ein mehrzeiliges Makro. \ bedeutet dass noch eine Makrozeile folgt.
-
Hallo,
Ich sehe hier keine ""-Zeichen. Meinst du \ ?
Das sind Zeilenfortsetzungszeichen. Die sagen dem Makro nur, dass es in der nächsten zeile weitergeht.
-
Bommel schrieb:
Was mich stutzig macht sind die "\" Zeichen. Ich kenne das aus anderen Sprachen als verhinderte NewLines. Ist das Standard?
Die sind auch in C++ "verhinderte NewLines"
Genau bedeutet das \ am Zeilenende, daß die aktuelle Zeile in der nächsten Zeile weitergeht. (dem C++ Compiler sind Zeilenwechsel meistens egal, aber der Präprozessor arbeitet zeilenorientiert) Der Präprozessor sieht also davon noch:#define DECLARE_PROTECT_FINAL_CONSTRUCT() void InternalFinalConstructAddRef() {InternalAddRef();} void InternalFinalConstructRelease() {InternalRelease();}(das könntest du auch so schreiben, aber auf mehrere Zeilen verteilt wird's lesbarer)
-
Vielen Dank

Diese Syntax kannte ich noch nicht.Ich hatte den Backslash geschrieben. Vermutlich wird es auch außerhalb von cpp Code als Escape Sequenz genutzt.
Test: "\" <- Wenn das \ hier wieder fehlt macht es der Webserver raus.
-
ma testen. vier backslashes:
\
'\'
''\''
"\"
-
das gute a schrieb:
ma testen. vier backslashes:
\
'\'
''\''
"\"Jetzt geht es bei mir: "\"
Aber bei dir auf einmal nicht mehr? Ich habe nur auf zitieren gedrückt.