Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 *))

Geschrieben
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.

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...