mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik typ bool im Winavr


Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo leute ich habe da ein kleines Problem.

Ich habe ein altes projekt im neuen WinAVR geladen und jetzt
erkennt der compiler den typ bool nicht mehr !

Was kann ich denn dagegen tun ?

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Was kann ich denn dagegen tun ?

einfach den Typ ändern

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja das hab ich schon aber das find ich ist eine unsaubere lösung...
ich habe einen unsigned char draus gemacht das meinst du doch ?

Außerdem funktioniert s16 u08 auch nicht mehr ... aus s16 habe ich int
und aus u08 unsigned char müsste ja trotzdem funktionieren oder ?

kann ich die alten typen nicht wieder anlegen oder so ?

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#define bool blafasel
Irgendwie wird es durch irgendwas anderes ersetzt worden sein...

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
per #define kann man alles so anlegen, wie man will. Dabei handelt es
sich ja nur um eine Textersetzung, die der Preprozessor durchführt...

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achsoo , ich dachte das bool variabeln wirklich nur 1 bit groß sind
...mhh aber das geht warscheinlich auch gar nicht denn der prozessor
kann ja bestimmt im Speicher eh nur byteweise zugreifen stimmts ?

und wie würdest du s16 definieren ,int ist doch 32bit ?

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn s16 eine signed 16-Bit-Zahl ist, dann liegst du mit int IMHO
richtig.
Sonst solltest du einen Blick in die WinAVR-Doku werfen.
"inttype.h" oder so nennt sich die header-datei, mit der man uint8
und sowas definiert...
IMHO gibt es bool beim avr-gcc gar nicht; ich kann mich aber auch
irren.

Autor: André Kronfeldt (freakazoid)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
16Bit signed: int16_t
16Bit unsigned: uint16_t

bool gibt es in 'c' sowieso nicht.

Grüße, Freakazoid

Autor: André Kronfeldt (freakazoid)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Korrektur:
booleans gibt es seit C99 auch in 'c'. Allerdings:

... and several other C compilers now support most of the new features
of C99. However, there has been less support from vendors such as
Microsoft and Borland that are mainly focused on C++ ...

Grüße, Freakazoid

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eric Weddington schreibt:

Everyone should just drop using #define'd TRUE and FALSE.

The C99 standard introduces a new header file: #include <stdbool.h>.
You now have the type bool, with enum values of true and false. There
is no need to define your own values now. You can use them as such:
Code:

#include <stdbool.h>
//...
bool foo(void)
{
   bool success;

   success = true;
   if (success)
   {
      // do something
   }

   success = false;
   return (success);
}

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.