Autor |
Nachricht |
< Warning: Using '-->' to access a -> or string array |
|
Verfasst am:
Mo, 31 Jan 2005 - 11:19
|
|
|
Kompassleser
Anmeldungsdatum: 21.02.2004
Beiträge: 198
Wohnort: Rheinmain
|
|
Hallo,
ich habe da seit einiger Zeit ein Problem.
Ich habe die dunno.h als Gerüst verwendet, um unbekannte Worte und Verben wieder als unbekannt auszugeben.
Selbst vor eigener Erweiterung kommt beim Compilieren diese Fehlermeldung:
Warning: Using '-->' to access a -> or string array
und zwar an dieser Stelle:
Code: | #ifdef TARGET_GLULX;
numwds = parse-->0; !Diese Zeile löst die Warnung aus!
#ifnot; |
Bisher habe ich es ignoriert da alles ohne bemerkbare Fehler lief, habe neulich aber mit der NounDomain() experimentiert und sie verändern wollen. Also habe ich sie über Replace ersetzt, und dann bekomme ich für jedesmal, wo im Code "-->" steht, eine solche Warnung.
Warum beschwert sich der Compiler nicht, wenn NounDomain aus der parserm.h compiliert wird?
Ich habe im Game Author's Guide to Glulx Inform gesucht, aber nichts passendes gefunden.
Hat da jemand ähnliche Erfahrungen gemacht? (ChrisW, du werkelst doch auch gerade mit Glux herum)
Zur Info: Ich arbeite mit Inform 6.30. und der infglk.h und hier sind die switches:
+language_name=German $DICT_WORD_SIZE=19 $MAX_STATIC_DATA=20000 -G
Dank im voraus
Kris |
|
|
|
|
|
Verfasst am:
Mo, 31 Jan 2005 - 15:12
|
|
|
Experte
Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München
|
|
Kris hat folgendes geschrieben: | Warum beschwert sich der Compiler nicht, wenn NounDomain aus der parserm.h compiliert wird? |
Weil parserm.h wie alle Dateien der Lib als System_file deklariert ist und daher Warnungen unterdrückt werden.
Dummerweise ist parse im Z-Code ein Mischfeld, so dass man byte- und wortweise darauf zugreifen muss. In Glulx jedoch enthält das Feld parse nur Wörter, wie Roger Firth im Inform FAQ beschreibt. Es ist aber einfach falsch deklariert, auch in der neuen Lib. Du kannst vermutlich ohne Bedenken die Zeile 402 in parserm.h:
Code: | Array parse -> PARSE_BUFFER_LEN;
|
abändern in: Code: | Array parse --> PARSE_BUFFER_LEN;
|
(Behaupte ich mal...)
Ansonsten wirst du die Warnungen nicht umgehen können. (Du kannst deine neue NounDomain nicht in ein eigenes System_file packen, da die Replace-Direktive genau diese Dateimarkierung benutzt, um festzustellen, welche NounDomain es nun kompilieren soll: Es ignoriert die in Systemdateien und erzeugt die, die es in einem nicht als Systemdatei markierten Quelltext findet.)
Mit der Compileroption -w werden Warnungen übrigens komplett unterdrückt. _________________ Every silver lining has a cloud. |
|
|
|
|
|
Verfasst am:
Mo, 31 Jan 2005 - 15:44
|
|
|
Kompassleser
Anmeldungsdatum: 21.02.2004
Beiträge: 198
Wohnort: Rheinmain
|
|
Ok.
Da man es ja nun doch bedenkenlos ignorieren kann, lasse ich aber alles mal so, wie im Original. Bei buffer (Zeile 401) z.B. gibt er in jedem Fall eine Warnung raus - daher, wie gesagt, lasse ich alles so, wie es ist.
Vielen Dank für die Info
Kris |
|
|
|
|
|