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 line
    

    machen



  • 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 doof
    

    passieren?



  • 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 doof
    

    passieren?

    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_NEUTRAL
    

    in VC entferne ich das mit

    #define SLASH(s) s##/
    #define LANGUAGE SLASH(/)
    

    und beweg mich so bis zum FILEVERSION Tag


Anmelden zum Antworten