Il motivo per cui questo è stato fatto in passato è la portabilità. C e C++ non forniscono garanzie specifiche delle dimensioni di int
, long
e short
, mentre i progettisti di librerie spesso lo richiedono.
Una soluzione comune è definire i propri alias per i tipi di dati e modificare le definizioni in base alla piattaforma specifica, assicurandosi che venga utilizzato il tipo di dimensione appropriata.
Questo problema ha origine in C ed è stato risolto introducendo il file di intestazione stdint.h
(rinominato in cstdint
in C++). Includendo questa intestazione è possibile dichiarare i tipi int32_t
, int16_t
, ecc. Tuttavia, le librerie sviluppate prima dell'introduzione di stdint.h
e le librerie necessarie per la compilazione su piattaforme prive di questa intestazione utilizzano la soluzione alternativa precedente.
Principalmente per crossover x64/x86 o per definire condizioni specifiche. – Bastien
https://en.wikipedia.org/wiki/Not_invented_here –