mikrocontroller.net

Forum: PC-Programmierung Fehlermeldung LCC-Win32


Autor: Matthias Kölling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche eine einfache verkettete Liste zu programmieren erhalte 
aber eine Fehlermeldung.
Im Header habe ich folgendes deklariert:

struct OpCode
{
   String s_OpCode;
   struct OpCode *t_next;
};

typedef struct OpCode T_OpCode;

Im c-File versuche ich folgendes:

const T_OpCode at_First_Byte[] =
{
   {"MOV", at_Second_Byte}
};

Ich bekomme folgende Fehlermeldung:

Error d:\software\dis78k4\byte1.c: 6  invalid initialization type; found 
'pointer to char' expected 'unsigned int'
Warning d:\software\dis78k4\byte1.c: 6  assignment of pointer to struct 
OpCode to pointer to char

Wenn ich statt des Strings mit Integer arbeite funktioniert es.

Laut LCC-Win32 Hilfe ist String der string Datentyp des Compilers.

Was mache ich falsch?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Kölling schrieb:
> Laut LCC-Win32 Hilfe ist String der string Datentyp des Compilers.

Bist Du ganz sicher, daß das in C so sein soll?

Autor: Matthias Kölling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In c vielleicht nicht aber in c++

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon, aber Du schreibst explizit C, nicht C++:

> Im c-File versuche ich folgendes:

und Deine Sourcefiles benennst Du ebenfalls *.c

Damit übersetzt der Compiler das als C, nicht als C++.

Eine übliche Namenskonvention für C++-Sourcefiles ist *.cpp.

Autor: Matthias Kölling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah ok, ich bin davon ausgegangen, dass der LCC-Win32 ein reiner c++ 
compiler ist.
Vielen Vielen Dank und frohe Weihnachten!

Autor: Matthias Kölling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mir die Sache noch mal angeschaut. Der LCC-Win32 vergibt bei der 
Erstellung eines Projektes automatisch die Endung c. Die Endung cpp wird 
von ihm nicht erkannt.

Wenn ich mir die include files des Compilers anschaue, komme ich zu dem 
Schluß, dass es sich um einen c-Compiler mit c++ Erweiterung handelt. 
Als lokale Variable werden Strings vom Compiler fehlerfrei übersetzt. 
Ich vermute nun, dass in meinem zu füllenden struct array streng 
genommen die Anfangsadresse eines Strings steht, da ja bei der 
Deklaration der Struktur noch nicht bekannt ist, wie lang ein String 
werden kann. Für den Borland Builder ist so ein Konstrukt kein Problem. 
Leider kann ich mir dieses Werkzeug privat nicht leisten, bzw. wäre 
überdisomensioniert für den Zweck.

Sollte keiner Erfahrung mit LCC-Win32 haben, werde ich das Problem in 
alt bekannter c-Manier mit einem Array of char lösen.

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.