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 *))
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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden