![]() |
C nach Pascal
Hallo,
ich versuche gerade ein kleine C Beispiel nach Pascal zu übersetzten hänge aber leider an folgenden Konstrukt: Stack.h
Code:
Stack.c
#define MAX_APP_ENTRY 5
typedef struct { unsigned int port; // Port void(*fp)(unsigned char); // Zeiger auf auszuführende Funktion } TCP_PORT_ITEM; TCP_PORT_ITEM TCP_PORT_TABLE[MAX_APP_ENTRY];
Code:
Hätte da jemand einen Tip.
TCP_PORT_ITEM TCP_PORT_TABLE[MAX_APP_ENTRY] = // Port-Tabelle
{ {0,0}, {0,0}, {0,0} }; Danke Thorsten [edit=Matze][c]-Tags eingefügt. Zukünftig bitte selbst daran denken. MfG, Matze[/edit] |
Re: C nach Pascal
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: C nach Pascal
Hallo Cyf,
dann sollte es doch so aussehen:
Delphi-Quellcode:
Aber wo bleibt das Byte(Char) aus void(*fp)(unsigned char); // Zeiger auf auszuführende FunktionType TCP_PORT_ITEM = Record port : Word; // Port fp : Pointer; // Zeiger auf auszuführende Funktion end; var TCP_PORT_TABLE : array[0..MAX_APP_ENTRY-1] of TCP_PORT_ITEM; initialization for i:=0 to 2 do TCP_PORT_TABLE[i]:=(0,0); Gruß Thorsten |
Re: C nach Pascal
Nicht, dass ich da Ahnung davon hätte, aber kann es sein, dass die auszuführende Funktion über ihren Namen angesprochen werden soll?
|
Re: C nach Pascal
Zitat:
Delphi-Quellcode:
Und dann ist 'fp' im Record 'TCP_PORT_ITEM' kein Pointer, sondern ein TCallProc.
type
TCallProc = procedure(c: Char); Wobei ich grad nicht auswendig weiß, was der richtige Delphi-Datentyp für 'unsigned char' ist. Gruß, SirTwist |
Re: C nach Pascal
Danke funzt
Delphi-Quellcode:
dann sollte das doch eine Variable sein
type
TCallProc = procedure(c: Char); TCP_PORT_ITEM = Record port : Word; // Port fp : TCallProc; // Zeiger auf auszuführende Funktion end; initialization for i:=0 to MAX_APP_ENTRY-1 do TCP_PORT_TABLE[i].Port:=0; TCP_PORT_TABLE[i].fp:=nil; endfor; struct arp_table arp_entry[MAX_ARP_ENTRY];
Delphi-Quellcode:
Nur wofür steht das struct davor ? Ist ja kein Record.
Var
arp_entry : Array[0-MAX_ARP_ENTRY-1] of arp_table; Sieht alles anders aus als in den Tutorials Thorsten |
Re: C nach Pascal
Zitat:
Byte :!: Ansonsten stimmts bei Unicode-Chars nicht mehr. In C ist ein Char immer genau 1 Byte groß. Zitat:
Wenn arp_table bei dir der Typ der struct ist, stimmt das schon. Nur hast du wahrscheinlich eher
Delphi-Quellcode:
gemeint.
array[0 .. MAX_ARP_ENTRY-1]
|
Re: C nach Pascal
Zitat:
Mal schauen wie weit ich jetzt komme. Danke alle Thorsten |
Re: C nach Pascal
Moin Thorsten,
den Record würde ich allerdings so beginnen:
Delphi-Quellcode:
unsigned int entspricht in Delphi dem cardinal, da es er 4 Byte gross ist, und nicht 2.
Type
TCP_PORT_ITEM = packed record port : cardinal; // Port |
Re: C nach Pascal
Zitat:
Word sind ja hier 16 Bit und das würde für den Portrange nicht reichen. Danke Thorsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz