pointer dereferencing problem

Avra
Schreiberling
Avatar
Geschlecht:
Herkunft: Belgrade, Serbia
Alter: 54
Homepage: rs.linkedin.com/in…
Beiträge: 653
Dabei seit: 07 / 2002
Betreff:

pointer dereferencing problem

 · 
Gepostet: 12.08.2014 - 14:03 Uhr  ·  #1
Code
type
  PFloat    = pointer to float;
var
{$EEPROM}
  EepFloat: float;
{$IDATA}
  ptrfloat: PFloat;
  ptr: pointer;
  MyFloatValue: float;

begin
  EepFloat := 3.14;
  ptr := @EepFloat;

  // this compiles:
  ptrfloat := PFloat(ptr);
  MyFloatValue := EEpromPtr(ptrfloat)^;

  // error, this does not compile:
  MyFloatValue := EEpromPtr(PFloat(ptr))^; // <<<<<<<<<<<<<< Why error?
end;


Is it just me or pointer dereferencing is not working in this case?

Example is very simplified. In real life I have 12 other types, not just float, I dereference from IDATA, EEPROM and UDATA at the same place, I convert all these types to string, and I have similar patterns repeated in many places, so solving this would make my code much more readable and less bloat.
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: pointer dereferencing problem

 · 
Gepostet: 12.08.2014 - 18:04 Uhr  ·  #2
Hello Avra,

EEpromPtr and FlashPtr expect a simple pointer. Your construction is not supported yet.

rolf
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   47   61 · Page-Gen-Time: 0.028974s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI