Wie stelle ich die Optimierung ein, dass...

Gast #438455
Lesenswert?
• ▲
▼
dieses foo=4 wegoptimiert wird ( oder erwarte ich da zuviel ??? )

#include <avr/io.h>


 uint8_t foo;

int main(void)
{
    /* Setzt das Richtungsregister des Ports A auf 0xff
       (alle Pins als Ausgang): */
    DDRB = 0xff;
 foo = 4;
    /* Setzt PortA auf 0x03, Bit 0 und 1 "high", restliche "low": */
    PORTB = 0x03;

}
#438473
Lesenswert?
• ▲
▼
Das kann der Compiler nicht wegoptimieren, da es sich bei foo
um eine globale Variable handelt.

Der Compiler hat keine Möglichkeit festzustellen, ob es nicht
irgendwo eine 2te 'Compilation Unit' (ein 2tes C-Source Code
File) gibt, dass sich mittels

   extern uint8_t foo;

Zugang zu dieser Variablen verschafft und auf ihren Wert angewiesen
ist.

Wenn du eine Variable nicht brauchst warum legst du sie
dann an?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.