Zwei Fehlermeldungen beim Kompillieren. Bitte um Hilfe.

Gast #4067059
Lesenswert?

Hallo meine Freunde.


Ich bekomme zu dieser Funktion 2 Fehlermeldungen:
1
float ds18b20_readtemp (unsigned char code)
2
{
3
  int i,  ds1820skratchpad[9];
4
  float floattemp;
5

6
  cli();
7
  w1_reset();
8
  w1_command(READ, code);
9
  for (i=0; i<9; i++)
10
  {
11
    ds1820skratchpad[i] = w1_byte_rd();
12
  }
13
  sei();
14
  floattemp = ((ds1820skratchpad[1]<<8)+ds1820skratchpad[0])*0.0625;
15
  return floattemp;
16
}

1. parameter name omitted  (Zeile 1)
2. expected expression before ')' token   (Zeile 9)


Prototyp ist deklariert. Kann mir jemand sagen was hier falsch ist? Ich 
kann sie mir leider nicht erklären.

Viele Grüße
Gast #4067068
Lesenswert?

Nein, natürlich nicht. Die Zeilenangaben beziehen sich auf den 
geposteten Codeschnippsel ;)

Deswegen ja auch nur ein uint8. Ja ich weis, ich hätte auch gleich ein 
Char-Array machen können, aber daran liegt es nicht. :)
#4077906
Lesenswert?

Ronny Spiegel schrieb:
> Interessant ... seit wann ist denn "code" ein Keyword in C und
> welche
> Bedeutung hat es? Ich konnte da nix zu finden.

Wenn das mal für einen 8051 gedacht war, findet sich vermutlich in 
irgendeinem Header noch ein:
1
#define code

D.h. "code" wird durch "" (nix) ersetzt. Bei 8051 C Compilern gibt man 
mit "code" das Code-Segment (für Konstanten oder Strings) vor.

Du solltest dann auch bei "data", "idata", "xdata" oder "pdata" 
aufpassen. Da könnte dasselbe passieren.
Gast #4077938
Lesenswert?

Ronny Spiegel schrieb:
> Interessant ... seit wann ist denn "code" ein Keyword in C und
> welche Bedeutung hat es? Ich konnte da nix zu finden.

Was viel schlimmer ist: Ein C Compiler gibt keine vernünftigen Meldungen 
aus. Fehlt irgendwo eine Klammer, zeigt der Error auf irgendein Symbol 
20 Zeilen tiefer.

Das ist Futter für den Schwanz, ähh Compiler Vergleich in einem parallen 
Thread.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren