Guía de seguimiento dinámico de Solaris

Tipos de datos y tamaños

D proporciona tipos de datos básicos para los números enteros y constantes de coma flotante. La aritmética sólo se puede realizar en números enteros en los programas de D. Las constantes de coma flotante se pueden utilizar para inicializar las estructuras de datos, sin embargo, la aritmética de coma flotante no está permitida en D. D proporciona un modelo de datos de 32 y 64 bits para utilizar al escribir programas. El modelo de datos utilizado al ejecutar el programa es el modelo de datos original asociado con el núcleo del sistema operativo activo. Puede determinar el modelo de datos original para el sistema utilizando isainfo -b.

En la siguiente tabla se muestran los nombres de los tipos de número entero y sus tamaños en cada uno de los dos modelos de datos. Los números enteros se representan en un formato de parejas complementarias en el orden de codificación de bytes original del sistema.

Tabla 2–2 Tipos de datos de números enteros de D

Nombre de tipo 

Tamaño de 32–bits 

Tamaño de 64–bits 

char

1 byte 

1 byte 

short

2 bytes 

2 bytes 

int

4 bytes 

4 bytes 

long

4 bytes 

8 bytes 

long long

8 bytes 

8 bytes 

Los tipos de número entero se pueden prefijar con el calificador signed o unsigned. Si no hay ningún calificador de signo presente, se asume que el tipo es signed (con signo). El compilador de D también proporciona los alias de tipo que se indican en la siguiente tabla:

Tabla 2–3 Alias de tipo de número entero de D

Nombre de tipo 

Descripción 

int8_t

Número entero con signo de 1 byte 

int16_t

Número entero con signo de 2 bytes 

int32_t

Número entero con signo de 4 bytes 

int64_t

Número entero con signo de 8 bytes 

intptr_t

Número entero con signo de tamaño igual a un puntero 

uint8_t

Número entero sin signo de 1 byte 

uint16_t

Número entero sin signo de 2 bytes 

uint32_t

Número entero sin signo de 4 bytes 

uint64_t

Número entero sin signo de 8 bytes 

uintptr_t

Número entero sin signo de tamaño igual a un puntero 

Estos tipos de alias son equivalentes a la utilización del nombre del tipo base correspondiente en la tabla anterior, y se definen adecuadamente para cada modelo de datos. Por ejemplo, el nombre de tipo uint8_t es un alias para el tipo unsigned char. Consulte el Capítulo 8Definiciones de tipos y constantes para obtener más información sobre cómo definir sus propios alias de tipo para utilizarlos en los programas D.

D proporciona tipos de coma flotante para ofrecer compatibilidad con las declaraciones y tipos de ANSI-C. Los operadores de coma flotante no se admiten en D, sin embargo, se puede realizar un seguimiento y dar formato a los objetos de datos de coma flotante utilizando la función printf. () Se pueden utilizar los tipos de coma flotante que se indican en la siguiente tabla:

Tabla 2–4 Tipos de datos de coma flotante en D

Nombre de tipo 

Tamaño de 32–bits 

Tamaño de 64–bits 

float

4 bytes 

4 bytes 

double

8 bytes 

8 bytes 

long double

16 bytes 

16 bytes 

D también proporciona el tipo especial string para representar cadenas ASCII. Las cadenas se analizan con más detalle en el Capítulo 6Cadenas.