Forum: PC-Programmierung Fehlermeldung LCC-Win32


von Matthias Kölling (Gast)


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?

von Rufus Τ. F. (rufus) Benutzerseite


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?

von Matthias Kölling (Gast)


Lesenswert?

In c vielleicht nicht aber in c++

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Matthias Kölling (Gast)


Lesenswert?

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

von Matthias Kölling (Gast)


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.

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.