Forum: Mikrocontroller und Digitale Elektronik avr Studio Datentyp bool


von Rafael S. (rafi)


Lesenswert?

Hallo,
ich habe hier schon gesucht jedoch keine passende Antwort gefunden.
Zwei Fragen hätte ich ! :)

Gibt es im AvrStudio den Datentypen bool ??
Wie deklariere ich diesen wenn es ihn gibt?
Ich brauche in meiem Programm eine Boolvariable.
Diese wird gesetzt wenn ein Taster betätigt wurde.

z.B.:

bool taster_gedrueckt = 0;     ?????

Und was hat es zu bedeuten wenn die Fehlermeldung "variable x set but 
not used [-Wunused-but-set-variable]
Diese Fehlermedung kam bei einer von mir angelegten int- Variable:

int zahl = 0;

Diese "zahl" wurde auch in einer if- Anweisung mit 1 beschrieben. hmm ??

Gruß
Rafel

von Oliver S. (oliverso)


Lesenswert?

"Im" AVRStudio gibt es überhaupt keine Datentypen.

Die Sprache C kennt keinen Datentyp bool. Du kannst dir selber einen per 
typedef erfinden, das ändert aber nichts an der Tatsache. Der Rest steht 
in deinem C-Buch.

Die Warnung besagt genau das, was sie besagt: Du schreibst einen Wert in 
eine Variable, machst aber nichts damit.

Oliver

von B. S. (bestucki)


Lesenswert?

Rafael S. schrieb:
> Gibt es im AvrStudio den Datentypen bool ??
Versuchs mit stdbool.h

> Und was hat es zu bedeuten wenn die Fehlermeldung "variable x set but
> not used [-Wunused-but-set-variable]
Dann greifst du nur schreibend auf die Variable zu.

> Diese "zahl" wurde auch in einer if- Anweisung mit 1 beschrieben. hmm ??
Diese wurde evt. wegoptimiert, da die Bedingung immer falsch ist. Wenn 
du ein Minimalbeispiel postest, können wir dir weiterhelfen.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

bool ist Teil von C99:
1
#include <stdbool.h>

von npn (Gast)


Lesenswert?

be s. schrieb:
>> Diese "zahl" wurde auch in einer if- Anweisung mit 1 beschrieben. hmm ??
> Diese wurde evt. wegoptimiert, da die Bedingung immer falsch ist. Wenn
> du ein Minimalbeispiel postest, können wir dir weiterhelfen.

Selbst wenn sie nicht wegoptimiert wurde, ist es immer noch nur ein 
schreibender Zugriff. Nur schreiben und niemals lesen wird als "sinnlose 
Operation" verstanden...

von Cyblord -. (cyblord)


Lesenswert?

npn schrieb:
> be s. schrieb:
>>> Diese "zahl" wurde auch in einer if- Anweisung mit 1 beschrieben. hmm ??
>> Diese wurde evt. wegoptimiert, da die Bedingung immer falsch ist. Wenn
>> du ein Minimalbeispiel postest, können wir dir weiterhelfen.
>
> Selbst wenn sie nicht wegoptimiert wurde, ist es immer noch nur ein
> schreibender Zugriff. Nur schreiben und niemals lesen wird als "sinnlose
> Operation" verstanden...

Unsinn. Es gibt viele Anwendungsmöglichkeiten:

DON’T CARE BUFFER STORES
LEAST SIGNIFICANT CONTROL MEMORIES
POST MORTEM MEMORIES (WEAPON SYSTEMS)
ARTIFICIAL MEMORY SYSTEMS
NON-INTELLIGENT MICRO CONTROLLERS
FIRST-IN NEVER-OUT (FINO) ASYNCHRONOUS
BUFFERS.
OVERFLOW REGISTER (BIT BUCKET)

vgl. Write Only Memory

von B. S. (bestucki)


Lesenswert?

npn schrieb:
> Selbst wenn sie nicht wegoptimiert wurde, ist es immer noch nur ein
> schreibender Zugriff. Nur schreiben und niemals lesen wird als "sinnlose
> Operation" verstanden...

Stimmt, habe das irgendwie hineininterpretiert, dass die Variable auch 
gelesen wird. Kommt davon, wenn man während dem Programmieren in einem 
Forum schreibt...

Wo überall auf die Variable zugegriffen wird, sollte sich mit Ctrl-F 
ermitteln lassen.

von Rafael S. (rafi)


Lesenswert?

be s. schrieb:
> Rafael S. schrieb:
>> Gibt es im AvrStudio den Datentypen bool ??
> Versuchs mit stdbool.h
>
>> Und was hat es zu bedeuten wenn die Fehlermeldung "variable x set but
>> not used [-Wunused-but-set-variable]
> Dann greifst du nur schreibend auf die Variable zu.
>
>> Diese "zahl" wurde auch in einer if- Anweisung mit 1 beschrieben. hmm ??
> Diese wurde evt. wegoptimiert, da die Bedingung immer falsch ist. Wenn
> du ein Minimalbeispiel postest, können wir dir weiterhelfen.

Johann L. schrieb:
> bool ist Teil von C99:
> #include <stdbool.h>

Danke! :-)
Habe gerade die stdbool.h included.... funzt nun auch! :)

Was die Fehlermeldung angeht => ich habe die Variable deklariert und 
dann auch weiter verarbeitet in form einer zuweisung und später einer 
Abfrage.
Trotzdem kam die Meldung.. erst als ich alles einemal gespeichert habe 
und dann erst "build solution" ausgeführt habe war der Fehler weg.. hmm. 
Hatte ich jetzt mehrmals schon.


Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.