- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 31

Thema: Preprocessor, bedingte Compilierierung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    ok, wenns absolut nicht ginge, wäre es ja ok -
    aber in deinem Link schreibt doch einer, dass es doch ginge mit Buchstaben wie 'Q'?
    https://stackoverflow.com/questions/...sor-directives
    The answere by Patrick and by Jesse Chisholm made me do the following:

    #define QUEEN 'Q'
    #define JACK 'J'

    #define CHECK_QUEEN(s) (s==QUEEN?1:0)
    #define CHECK_JACK(s) (s==JACK?1:0)

    #define USER 'Q'

    [... later on in code ...]

    #if CHECK_QUEEN(USER)
    compile_queen_func();
    #elif CHECK_JACK(USER)
    compile_jack_func();
    #elif
    #error "unknown user"
    #endif

    Instead of #define USER 'Q' #define USER QUEEN should also work but was not tested also works and might be easier to handle.
    das ist das, was ich hasse, wenn man Diskussionslinks als Antwort auf eine Frage gibt - da antworten dann 100 Leute mit 200 verschiedenen Meinungen....

    (und so kompliziert wie dort ist es ja gar nicht mal bei mir)

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    deswegen sollte man sich auf die lösung mit dem grünen haken fixieren das ist dann in 99% der fälle die lösung die jeder akzeptiert

    wenn du 'Q' schreibst besteht der hauch einer chance dass der precompiler das vorher intern in seine ascii zahl "81" umwandelt, das ist aber keinenfalls standard und funktioniert vermutlich nur mit den allerwenigstens compilern

    es geht jedenfalls nicht bis hin zu C11 bzw. C2011 compilern, danach schien der standard wohl neue möglichkeiten zu bieten

    (und so kompliziert wie dort ist es ja gar nicht mal bei mir)
    die ursprüngliche frage deckt sich exakt mit deiner .. nur ein wenig anders formuliert, schade dass du das so nciht erkennst ... wo wir wieder beim thema "über den tellerrand gucken" wären
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #3
    HaWe
    Gast
    achso, der zitierte Code geht gar nicht bei Arduino C++, weil es nicht standardmäßig bereits C++11 ist? Ist das der Grund?
    (was ist ein grüner Haken?)

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    bis hin zu C11 bedeutet C11 eingeschlossen ... alles danach ist wohl intelligenter aber auch komplizierter zu nutzen

    arduino standard meines wissens nach ist c99 also c1999
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    (was ist ein grüner Haken?)
    in kombination mit deinem letzten post bleibt mir da nur zu sagen


    ich bin raus, viel spaß den andern

    wenn du magst lösch ich noch meine beiträge dann hast du eine saubere diskussionsgrundlage mit anderen
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  6. #6
    HaWe
    Gast
    @ceos:
    dein Post
    Zitat Zitat von Ceos Beitrag anzeigen
    in kombination mit deinem letzten post bleibt mir da nur zu sagen
    ich bin raus, viel spaß den andern
    wenn du magst lösch ich noch meine beiträge dann hast du eine saubere diskussionsgrundlage mit anderen
    kam VOR meinem, in dem ich geantwortet habe:
    keine Ahnung, welche Laus dir jetzt schon wieder über die Leber gelaufen ist, schließlich bist du ja der, der nicht auf meine Frage exakt geantwortet hast, sondern mit unverständlichen Beispielen und irreführenden Links geantwortet hast.
    und du hast ja auf den Link verwiesen, um zu beweisen, dass es angeblich nicht geht
    die ursprüngliche frage deckt sich exakt mit deiner .. nur ein wenig anders formuliert, schade dass du das so nciht erkennst ... wo wir wieder beim thema "über den tellerrand gucken" wären
    FAZIT (damit kannst du das Thema als erledigt markieren): Es geht nicht, der Precompiler kann nur mit Zahlen arbeiten
    wenn es doch zu kompliziert klingt, akzeptiere bitte meine antwort: "Es geht nicht!" ... ich habe dieses mal sogar von anfang an referenzen serviert um es zu belegen!
    Andererseits dreht sich das dortige Topic gar nicht um char, sondern um strings, und es sagt doch der OP des dortigen Topics eindeutig:
    It works only if I use a char, but I need a string. How can I do this?
    Auch in andere Posts dort verwenden manche chars.
    Was also soll da nicht irreführend sein?

    Tatsächlich aber geht es ja nun doch, s.o.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    irreführung setzt einen vorsatz voraus andere in die irre führen zu wollen ... ergo eine unterstellung


    es sind die unüberlegten unterstellungen die mich an deiner ausdrucksweise zur weißglut treiben
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  8. #8
    HaWe
    Gast
    Zitat Zitat von Ceos Beitrag anzeigen
    deswegen sollte man sich auf die lösung mit dem grünen haken fixieren das ist dann in 99% der fälle die lösung die jeder akzeptiert

    wenn du 'Q' schreibst besteht der hauch einer chance dass der precompiler das vorher intern in seine ascii zahl "81" umwandelt, das ist aber keinenfalls standard und funktioniert vermutlich nur mit den allerwenigstens compilern
    ...
    die ursprüngliche frage deckt sich exakt mit deiner .. nur ein wenig anders formuliert, schade dass du das so nciht erkennst ... wo wir wieder beim thema "über den tellerrand gucken" wären
    nein, die ursprüngliche Frage deckt sich absolut NICHT mit meiner, weil dort MULTIPLE VARIABLE ZeichenKETTEN verwendet und verglichen werden und nicht 1 Makroname mit einem einfachen konstanten Einzel-Zeichen!! Zeichen aber sollen ja FUNKTIONIEREN !
    https://stackoverflow.com/questions/...sor-directives
    How to compare strings in C conditional preprocessor-directives
    I have to do something like this in C.
    It works only if I use a char, but I need a string. How can I do this? // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

    Code:
    #define USER "jack" // jack or queen
    #if USER == "jack"
    #define USER_VS "queen"
    #elif USER == "queen"
    #define USER_VS "jack"
    #endif

Ähnliche Themen

  1. bedingte Compilierung in BASCOM
    Von jguethe im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 30.09.2012, 00:09

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test