Gegeven de volgende proceduredeclaraties:
Parameters bij ProcD worden ook by reference doorgegeven, maar hoe zit het bij ProcC? Ik begin te vermoeden dat ook ParamC by reference wordt doorgegeven. Reden: Bij de code hieronder wordt in een code tag bij regel 8 door Delphi aangegeven dat TIntArray van het type ^array of Integer is, een dereferenced pointer dus!
Delphi:
Bij ProcA wordt de waarde van ParamA aan de procedure doorgegeven (by value), terwijl bij ProcB een pointer naar ParamB wordt doorgegeven (by reference).1
2
3
4
| procedure ProcA(ParamA: Integer); procedure ProcB(const ParamB: Integer); procedure ProcC(ParamC: array of Integer); procedure ProcD(const ParamD: array of Integer); |
Parameters bij ProcD worden ook by reference doorgegeven, maar hoe zit het bij ProcC? Ik begin te vermoeden dat ook ParamC by reference wordt doorgegeven. Reden: Bij de code hieronder wordt in een code tag bij regel 8 door Delphi aangegeven dat TIntArray van het type ^array of Integer is, een dereferenced pointer dus!
Delphi:
Weet iemand hoe Delphi complexe datatypen zoals arrays en records aan procedures doorgeeft? Is dat altijd by reference of alleen als er const voor staat?
5
6
7
8
| type TIntArray = array of Integer; procedure ProcE(ParamE: TIntArray); |
Een goede grap mag vrienden kosten.