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.