GCC Macro um Kommentar zu erzeugen
-
bei VS löschen diese Macros SOME_TAG und kommentieren den rest der Zeile aus
#define SLASH(s) s##/ #define SOME_TAG SLASH(/)wie erzeuge ich das beim gcc?
-
? Was soll das bringen?
-
es soll aus
SOME_TAG rest of line// rest of linemachen
-
Ich weiß du fragst nach dem gcc, aber nach ANSI-C geht das nicht. Das steht sogar mehr oder weniger explizit im Standard.
-
#define SOME_TAG(something) //##something #include <iostream> int main() { SOME_TAG(std::cout<<"Hello"<<std::endl;) }Funktioniert bei mir.
-
pyhax schrieb:
Funktioniert bei mir.
Was heißt "funktioniert"? Hast du dir den Preprocessor-Output angeguckt? Kleiner Tipp: Was würde bei
#define SOME_TAG(something) //Wer das liest ist doofpassieren?
-
Bashar schrieb:
Ich weiß du fragst nach dem gcc, aber nach ANSI-C geht das nicht. Das steht sogar mehr oder weniger explizit im Standard.
Ziel ist, dass nach dem preprocessing die Zeile mit SOME_TAG leer ist, das also der Tag ersetzt und der Rest wie Kommentare gelöscht wird
-
Bashar schrieb:
pyhax schrieb:
Funktioniert bei mir.
Was heißt "funktioniert"? Hast du dir den Preprocessor-Output angeguckt? Kleiner Tipp: Was würde bei
#define SOME_TAG(something) //Wer das liest ist doofpassieren?
Ich habe es ausprobiert:
mit #define SOME_TAG(s) //##s:[foo@foo-arch tmp]$ ./test [foo@foo-arch tmp]$Keine Ausgabe
Mit #define SOME_TAG(s) s
[foo@foo-arch tmp]$ ./test Hello [foo@foo-arch tmp]$EDIT: Viel einfacher
:#define SOME_TAG(s) #include <iostream> int main() { SOME_TAG(std::cout<<"Hello"<<std::endl;) //Zeile leer }
-
das hilft aber nicht gegen
aus app.rc LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRALin VC entferne ich das mit
#define SLASH(s) s##/ #define LANGUAGE SLASH(/)und beweg mich so bis zum FILEVERSION Tag