- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 31

Thema: Preprocessor, bedingte Compilierierung

  1. #21
    HaWe
    Gast
    Anzeige

    LiFePo4 Akku selber bauen - Video
    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

  2. #22
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    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.

  3. #23
    HaWe
    Gast
    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.

    Also noch mal die Ausgangsfrage vom TOP:

    Zitat Zitat von HaWe Beitrag anzeigen
    hallo,
    ich möchte per bedingter Compilierierung meinen Code für verschiedene Zielplattformen anpassen, ähnlich wie hier:

    Code:
    #define TARGET 3 // willkürlicher Wert je nach Zielplattform
    #if TARGET==1
    /* code wenn TARGET gleich 1 ist */
    #elif TARGET==2
    /* code wenn TARGET 2 ist  */
    #else 
    /* code wenn TARGET  nicht 1 oder 2 ist*/
    #endif
    Der Wert der Konstanten für TARGET muss global im Kopf deklariert werden, also außerhalb von Funktionen.
    Daneben müsen die #if / #elif -Abfrage ebenfalls im Kopf möglich sein (für weitere globale #define-Konstanten, die sich daraus ergeben), zusätzlich aber auch im Code selber.
    - das geht mit den Zahlen-Konstanten auch soweit.

    A-Bär:
    meine Werte für TARGET sind nicht numerisch, sondern Buchstaben (U, M, Z, D oder E) -
    wie muss ich dann TARGET #definieren? und wie lauten dann die zugehörigen #if / #elif Abfragen?
    #define TARGET Z
    #if TARGET==Z // ???
    #if TARGET=='Z' // ???

    oder
    #define TARGET 'Z'
    #if TARGET==Z // ???
    #if TARGET=='Z' // ???

    oder
    const char TARGET = 'Z';

    und wie lauten dann die zugehörigen #if / #elif Abfragen?

    oder geht das gar nicht mit Buchstaben oder C strings?

  4. #24
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    schließlich bist du ja der, der nicht auf meine Frage exakt geantwortet hast ... unverständlichen Beispielen und irreführenden Links
    träum weiter ganz einfach

    ich hätte aussagen wie "verwirrend" statt "irreführend" und "für mich unverständliche links" hingenommen, aber deine unbekümmerte art ohne nachdenken einfach zu plappern und leute vor den kopf zu stoßen ist einfach unverkennbar und macht eben deine persönlichkeit aus, mein angebot die postings im friedlichen zu löschen kannste dir an die backe kleben
    Geändert von Ceos (11.12.2017 um 13:32 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  5. #25
    HaWe
    Gast
    Zitat Zitat von Ceos Beitrag anzeigen
    träum weiter ganz einfach
    das war als Beginn einer neuen Diskussion gedacht, eventuell weiß ja jemand - außer dir - ob es ggf doch geht, und wenn, wie genau.

    Also noch mal die Ausgangsfrage vom TOP....


    - - - Aktualisiert - - -

    Update:
    also, es funktioniert DOCH, irgendwie war beim Umstecken der Boards und Ändern der neuen dazu passenden #defines wohl Fehler passiert.
    Aber so geht es

    Code:
    #define TARGET 'D'
    
    #if TARGET=='Z'  
       // Code Z
    #elif TARGET=='E'  
       // Code E
    #elif TARGET=='D'  
       // Code D
    #else
       // Code default
    #endif

  6. #26
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    das hatte ich sogar erwähnt gehabt dass es compiler gibt die implizit einzelzeichen in ihren ascii wert umwandeln 'Q' = 81

    teste es einfach mal indem du folgenden code schreibst

    #define TARGET 'Q'

    #if (TARGET==81)

    sollte ebenfalls TRUE ergeben

    ist dennoch nicht standard sondern eine zugabe des spezifischen compilers
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  7. #27
    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.

  8. #28
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    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.

  9. #29
    HaWe
    Gast
    Zitat Zitat von Ceos Beitrag anzeigen
    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
    nein, irreführend heißt einfach nur: irreführend = in die Irre führend, genau so wie verwirrend einfach nur ver_wirr_end = wirr-machend heißt, und genau das ist es, was passiert ist.
    Irren kann sich jeder, keine Frage.
    Ob vorsätzlich oder fahrlässig oder zufällig, ist eine ganz andere Kategorie, und dass Leute hier vorsätzlich andere Leute irreführen, habe ich dir oder anderen mit keinem Wort unterstellt
    - nur die Aussage in deinen Posts haben mich eben sehr wohl verwirrt und in die Irre geführt, da sie völlig widersprüchlich waren zu dem, was in deinem eigenen Link ausgeführt wurde.
    Und wie gesagt, meine Bemerkung kam erst als Antwort, nachdem du bereits verbal die Klamotten hingeschmissen hattest - daher meine Frage dann nach der "Laus" und meine Bemerkung zu "irreführend" etc.

    PS,
    jetzt habe ich auch endlich den "grünen Haken" in deinem Link unter der "50" gefunden - so einer ist mir noch nie zuvor aufgefallen , und außerdem hat diese "Lösung" ja auch überhaupt nichts mit meiner Frage zu tun: denn insb. hier kommt ja kein einziger Char vor, wie ich ihn bei mir gebraucht hätte.

  10. #30
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    872
    Gibt's jetzt auch noch "magic chars"?
    Ich vermute mal 'Z' steht für Zero, ist 'W' dann ZeroW?

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad