Tamaños de tipo de datos comunes (aproximado):
| Tipo de datos | DOS (típicamente de 16 bits) | UNIX (típicamente de 32 bits o 64 bits) | Notas |
| --------------- | ------------------------ | ----------------------------------- | -------------------------------------------- |
| `char` | 1 byte | 1 byte | Generalmente firmado, pero puede ser sin firmar. |
| `CHARNE CHAR` | 1 byte | 1 byte | |
| `Short` | 2 bytes | 2 bytes (generalmente) | A menudo `Short Int` |
| `Unsigned Short` | 2 bytes | 2 bytes (generalmente) | |
| `int` | 2 bytes | 4 bytes (en 32 bits), 4 u 8 bytes (en 64 bits) | El tamaño depende en gran medida de la arquitectura. |
| `Unsigned int` | 2 bytes | 4 bytes (en 32 bits), 4 u 8 bytes (en 64 bits) | El tamaño depende en gran medida de la arquitectura. |
| `Long` | 4 bytes | 4 bytes (en 32 bits), 8 bytes (en 64 bits) | El tamaño depende en gran medida de la arquitectura. |
| `Unsigned Long` | 4 bytes | 4 bytes (en 32 bits), 8 bytes (en 64 bits) | El tamaño depende en gran medida de la arquitectura. |
| `Long Long` | No estándar | 8 bytes | C99 y más tarde estándar. |
| `Unsigned Long` | No estándar | 8 bytes | C99 y más tarde estándar. |
| `Float` | 4 bytes | 4 bytes | Punto flotante de precisión única. |
| `Doble` | 4 bytes u 8 bytes | 8 bytes | Punto flotante de doble precisión. |
| `Long Double` | 8 bytes (a menudo) | 8 bytes o 16 bytes | Punto flotante de precisión extendida (el tamaño varía). |
| `Pointer` | 2 bytes | 4 bytes (32 bits), 8 bytes (64 bits) | El tamaño depende de la arquitectura. |
Consideraciones importantes:
* Variaciones de DOS: Los tamaños "DOS" son generalizaciones. Los diferentes compiladores de DOS e incluso diferentes modelos de memoria (como pequeños, medianos, compactos, grandes, enormes) podrían influir en el tamaño de los tipos de datos. DOS era en gran medida un sistema operativo de 16 bits, lo que resultó en los tamaños más pequeños.
* Variaciones unix/Posix: Si bien los sistemas similares a unix tienden a ser más consistentes, los tamaños `int` y` long` pueden variar según la arquitectura del sistema (32 bits frente a 64 bits). Los mandatos estándar * mínimos * tamaños, no tamaños exactos. El uso de `stdint.h` (c99 y posterior) proporciona tipos enteros de ancho fijo (` int32_t`, `int64_t`, etc.) para una mejor portabilidad.
* Influencia del compilador: El compilador que usa (GCC, Clang, Visual C ++) puede tener impactos sutiles en los tamaños de tipo de datos. Siempre verifique la documentación de su compilador o use `sizeof ()` para determinar el tamaño exacto en su sistema y compilador específico.
* `sizeof ()` operador: Para obtener el tamaño preciso de un tipo de datos en bytes en * su * sistema, use el operador `sizeOf ()` en C/C ++. Por ejemplo:`sizeof (int)`, `sizeOf (largo largo)`, etc. Este es el método más confiable.
En resumen, mientras que la tabla ofrece tamaños comunes, los tamaños reales dependen del compilador y la plataforma. Siempre verifique el uso de `sizeof ()` para información precisa y específica de la plataforma.