Ver Mensaje Individual
  #29  
Antiguo 20-12-2018
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Reputación: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Un puntero a la misma?
No exactamente. Es más parecido a los "union". Por ejemplo:

Código Delphi [-]
VAR
  UnaLista: ARRAY [1..10] OF BYTE;
  LngLista: BYTE ABSOLUTE UnValor;

En este caso, al compartir "LngLista" la dirección física con "UnaLista", LngLista "contiene" el número de elementos de UnaLista. Sin embargo no es un puntero ya que no puede cambiarse su dirección, así que el código generado es de acceso directo y no una indirección que es lo que generan los punteros.

Hay que tener en cuenta que es un poco peligroso, (aquí sí se parece a los punteros) ya que pueden asignarse valores o permitir el acceso a áreas de memoria:

Código Delphi [-]
VAR
  UnValor, OtroValor, TercerValor, YMas, YTal: INTEGER;

  PROCEDURE Blabla;
  VAR
    MemoriaComprometida: ARRAY [1..4] OF INTEGER ABSOLUTE UnValor;
  BEGIN
   ...
  END;

Pero es útil, sobre todo en operaciones de bajo nivel. Así, en Allegro facilitaría mucho trabajo al poder acceder a la información de (por ejemplo) una imagen no sólo como una lista de octetos (BYTE) sino también de enteros de 32bit.

Nota: Todavía no lo he usado y hablo de lo que he leído, así que puede que no funcione exactamente así. Hay que investigar un poco.
Cita:
Empezado por Al González Ver Mensaje
Existe desde Turbo Pascal, y la uso desde entonces. El ejemplo más inmediato que tengo es la imagen de código en mi perfil de Twitter.

Saludos absolutos.
Gracias por la información.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 20-12-2018 a las 11:35:57.
Responder Con Cita