Bool problem

Gast #182103
#include <avr/io.h>

int main(void)
{
  unsigned char x;
  bool conversion;

  ADCSR =0b10100110;  // ADSCR initialisieren
  conversion =1;

  if(conversion==1)
  {
    ADCSR =0b11100110;  // Konvertierung starten
    if(bit_is_set(ADCSR,6))
    {
      x = ADCL;      // ADCL auslesen
    x += (ADCH<<8);
    }
      else
    {
      sbi(ADCSR,6);
    }
  }
  /* Endlosschleife */
  for (;;);

  return 0;
}

in welcher header datei ist der datentyp bool definiert?

wenn ich versuche diesen code zu compilieren sagte der Compiler:

ADfunktion.c:9: error: `conversion' undeclared (first use in this
function)

wo lieget hier der Fehler?
ich habe conversion als bool deklariert und mit 1 initialisiert müsste
doch eigentlich so funktionieren.
Gast #182104
Dein Sourcefile ist kein C++-Sourcefile, sondern ein C-Sourcefile. Den
Datentyp "bool" gibt es in C nicht.
In C++ ist das ein Datentyp wie int oder double und daher auch nicht in
einer Headerdatei definiert.

Also:
Entweder Sourcefile umbenennen (adfunktion.cpp) oder auf "bool"
verzichten.
Gast #182105
Sorry, das stimmt so nicht (mehr).

In C99 gibt es auch vordefinierte Typen für bool sowie Werte für
false und true, man muss nur #include <stdbool.h> reinziehen.
Gast #182106
Der Compiler sagt noch:

ADfunktion.c:9: error: `ADCSR' undeclared (first use in this
function)

wieso kennt er ADCSR nicht das Register gibts doch, was isn da los ?
 ansonsten das mit dem bool funzt jetzt danke
Gast #182110
> C99-Compiler sind aber noch sehr rar.

Da wir hier in einem GCC-Forum sind, nicht so sehr. ;-)

Zumindest nicht in dieser Hinsicht.  Einige obskurere Features von
C99 sind allerdings noch nicht supportet.

Ansonsten habe ich derzeit gelegentlich dienstlich den IAR für AVR
in der Hand, der ist in Punkto C99 wohl ähnlich weit (auch wenn man
da schon mal an die Grenzen der Implementierungsbugs stoßen kann...).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.