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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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