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?
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?
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.
Ah ok, ich bin davon ausgegangen, dass der LCC-Win32 ein reiner c++ compiler ist. Vielen Vielen Dank und frohe Weihnachten!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.