Typ proceduralny w C

0

Czy ktos z szanownego forum wie jak przeksztalcic ponizszy zapis w jezyku Pascal na jezyk C:

TMyEvent = procedure(Sender: TObject) of object;

Z gory dziekuje

0

W C się nie da, w C++ Builder:

TMyEvent event;
event = object->procedure;

nie myl typu z nazwą właściwości (przedrostek T w Delphi i C++ Builder oznacza, że symbol jest typem, a nie zmienną - taki standard nazewnictwa).

0

W BCB to by było tak:

typedef void __fastcall (__closure *TMyEvent)(System::TObject* Sender);

W C taki typ w ogóle nie może istnieć. Jest to podwójny wskaźnik - na metodę klasy oraz obiekt tej klasy czyli tak zwany "delgate" (rzadziej "closure"). W C nie ma klas [green] .

Kod który podałeś jest w języku Object Pascal.

0

ha pochrzaniłem interpretacje tego co napisał, ale ze mnie tępak.
@adf88: super masz rację, ale chyba się rozpędziłeś z tym "System::"

0
MarekR22 napisał(a)

ha pochrzaniłem interpretacje tego co napisał, ale ze mnie tępak.
@adf88: super masz rację, ale chyba się rozpędziłeś z tym "System::"
Nie bój nie bój, wiem co pisze :-P . W Delphi unit "System" jest automatycznie dołączany i siedzą w nim podstawowe rzeczy jak TObject. A w BCB unity są wrzucone w namespace'y o nazwie unitu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1