- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 17

Thema: C Klammerung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Ein if in C funktioniert etwas anders, als in manchen anderen Sprachen.
    Da hast Du recht, vermutlich liegt da mein Problem:
    Eine Abfrage wie if (a) würde in anderen Sprachen angemeckert werden, weil ein Operator fehlt.
    Bei if (a=3) handelt es sich quasi um ein Doppelschritt, wenn ich das so nennen darf.
    Erst wird a der Wert 3 zugewiesen und dann wird verglichen ob das Ergebnis ungleich 0 ist.
    Vermutlich wird das sogar wegoptimiert, weil 3 immer TRUE ist.

    Jezt wird mir auch langsam klar warum es == gibt. Das bedeutet nicht etwa "besonders gleich"
    sondern lediglich ein Vergleich ohne jegliche Zuweisung.

    Mit dem Vertauschen sieht zwar erstmal etwas "ungewohnt" aus, hat aber durchaus seinen Sinn.
    Einer Konstanten kann ich ja nichts zuweisen. Leuchtet ein.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.08.2008
    Ort
    Hallein
    Alter
    33
    Beiträge
    802
    Jaja, die Yoda Conditions ^^
    Kultuverein Metal Resurrection, für mehr Bands und Konzerte in Österreich (:

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Zitat Zitat von TheDarkRose Beitrag anzeigen
    Jaja, die Yoda Conditions ^^
    Sehr gut! "NOPping" statt "nap" gefiel mir auch gut .
    (sorry für's off topic)

  4. #4
    shedepe
    Gast
    Wenn man generell mit -Wall compiliert (Was man sowie so machen sollte) kriegt man bei den meisten Compilern auch eine Warnung wenn man schreibt
    if(a = 3)

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.699
    Zitat Zitat von shedepe Beitrag anzeigen
    Wenn man generell mit -Wall compiliert (Was man sowie so machen sollte) ...
    Genau das passiert mir ja - ohne jeglichem Zutun - mit dem AVRStudio 4. Und -Wall steht auch prompt im Übersetzungskommentar:

    Code:
    // ================================================================================
    /*  Der aktuelle Übersetzungskommentar:
    Build started 11.10.2013 at 18:10:01
    avr-gcc -I"D:\D_pro-fils\compu+MC\C5_Ronny-5_etc\R5MoCo\..\R5_Lib01"  
            -mmcu=atmega328p -Wall -gdwarf-2 -std=gnu99               
            -DF_CPU=20000000UL -Os -funsigned-char -funsigned-bitfields 
            -fpack-struct -fshort-enums -MD -MP -MT R5MoCo.o -MF dep/R5MoCo.o.d 
            -c  ../R5MoCo.c
    avr-gcc -mmcu=atmega328p -Wl,-Map=R5MoCo.map R5MoCo.o     -o R5MoCo.elf
    avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature  
            R5MoCo.elf R5MoCo.hex
    avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" 
            --change-section-lma .eeprom=0 --no-change-warnings -O 
            ihex R5MoCo.elf R5MoCo.eep || exit 0
    avr-objdump -h -S R5MoCo.elf > R5MoCo.lssAVR Memory Usage
    ----------------
    Device: atmega328p
    Program:    7842 bytes (23.9% Full)
    (.text + .data + .bootloader)
    Data:       1554 bytes (75.9% Full)
    (.data + .bss + .noinit)
    Build succeeded with 0 Warnings...
     ============================================================ */
    Ciao sagt der JoeamBerg

Berechtigungen

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

Solar Speicher und Akkus Tests