Fufialk Geschrieben 2. März 2006 Geschrieben 2. März 2006 Ich habe in einem nicht von mir stammenden Code eine nach C/C++ Richtlinien falsch deklarierte Funktion gefunden, und würde nun gerne wissen, ob es sich eventuell um eine andere Sprache handelt, oder ob es generell Nonsense ist. void huge _pascal cgi_readvar(rpCgiPtr request) Mein Borland 5.5 Compiler streikt hier völlig. Ist so etwas generell möglich (andere Compiler)? Oder handelt es sich schlicht um einen Syntaxfehler? Passe ich die Sache an, void huge_pascal_cgi_readvar (struct rpCgiPtr *request) lässt sich der Code compilieren, jedoch mit einer Fehlermeldung bezüglich eines undefinierten Types innerhalb der Funktion, an der Stelle: if (request -> fArgumentBufferLength == 0L) ('fArgumentBufferLength' is not a member of 'rpCgiPtr', because the type is not yet defined in function huge_pascal_cgi_readvar(rpCgiPtr *)) Zitieren
Klotzkopp Geschrieben 2. März 2006 Geschrieben 2. März 2006 Ist so etwas generell möglich (andere Compiler)? Oder handelt es sich schlicht um einen Syntaxfehler?Es steht jedem Compilerhersteller frei, eigene Erweiterungen einzuführen. Die neuen Schlüsselwörter sollten zwar alle mit zwei Unterstrichen beginnen, aber daran hält sich nicht jeder. Bei "huge" handelt es sich vermutlich um einen Verweis auf ein Speichermodell. "_pascal" ist die Aufrufkonvention. Beides gehört jedenfalls nicht zum Funktionsnamen. Wenn du das mit einem anderen Compiler übersetzen willst, würde ich beides erstmal weglassen. ('fArgumentBufferLength' is not a member of 'rpCgiPtr', because the type is not yet defined in function huge_pascal_cgi_readvar(rpCgiPtr *)) Die Deklaration von rpCgiPtr (vermutlich ein Typedef auf eine Struktur) brauchst du auf jeden Fall, bevor du diesen Code compilieren kannst. Indem du "struct" davorschreibst, ist der Compiler zufrieden, solange du nur mit dem Zeiger selbst hantierst. Aber sobald du auf Member zugreifen willst, brauchst du die komplette Deklaration. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.