Compartir a través de


Modelos de datos abstractos

Cada aplicación y cada sistema operativo tiene un modelo de datos abstracto. Muchas aplicaciones no exponen explícitamente este modelo de datos, pero el modelo guía la forma en que se escribe el código de la aplicación. En el modelo de programación de 32 bits (conocido como modelo ILP32), los tipos de datos enteros, largos y punteros tienen una longitud de 32 bits. La mayoría de los desarrolladores han usado este modelo sin darse cuenta. Para el historial de la API de Win32, esto ha sido una suposición válida (aunque no necesariamente segura) que se debe realizar.

En Windows de 64 bits, esta suposición de paridad en tamaños de tipo de datos no es válida. La creación de todos los tipos de datos de 64 bits de longitud desperdiciaría espacio, ya que la mayoría de las aplicaciones no necesitan el mayor tamaño. Sin embargo, las aplicaciones necesitan punteros a datos de 64 bits y necesitan la capacidad de tener tipos de datos de 64 bits en los casos seleccionados. Estas consideraciones llevaron a la selección de un modelo de datos abstracto denominado LLP64 (o P64). En el modelo de datos LLP64, solo los punteros se expanden a 64 bits; todos los demás tipos de datos básicos (entero y largo) permanecen de 32 bits de longitud.

Inicialmente, la mayoría de las aplicaciones que se ejecutan en Windows de 64 bits se migrarán desde Windows de 32 bits. Es un objetivo que el mismo origen, escrito cuidadosamente, se ejecute en Windows de 32 y 64 bits. La definición del modelo de datos no facilita esta tarea. Sin embargo, asegurarse de que el modelo de datos afecta solo a los tipos de datos de puntero es el primer paso. El segundo paso consiste en definir un conjunto de nuevos tipos de datos que permiten a los desarrolladores ajustar automáticamente el tamaño de sus datos relacionados con el puntero. Esto permite que los datos asociados a punteros cambien de tamaño a medida que el tamaño del puntero cambia de 32 bits a 64 bits. Los tipos de datos básicos siguen siendo de 32 bits de longitud, por lo que no hay ningún cambio en el tamaño de los datos del disco, los datos compartidos a través de una red o los datos compartidos a través de archivos asignados a memoria. Esto alivia a los desarrolladores de gran parte del esfuerzo implicado en migrar código de 32 bits a Windows de 64 bits.

Estos nuevos tipos de datos se han agregado a los archivos de encabezado de la API de Windows. Por lo tanto, ahora puede empezar a usar los nuevos tipos. Para obtener más información, vea Los nuevos tipos de datos.