Sto lavorando al porting di un'applicazione a 64 bit su piattaforma Linux. L'applicazione è attualmente supportata su Linux, Windows, Mac a 32 bit e Windows a 64 bit. Uno dei problemi che incontriamo frequentemente è l'uso di long per int e viceversa. Questo non era un problema fino ad ora poiché long e int sono intercambiabili (entrambi sono 4 byte) nelle piattaforme su cui è attualmente supportata l'applicazione. Il codebase è enorme, con un sacco di codice legacy con #defines per molti tipi di dati, rende complicato cercare tutti gli usi di long e sostituirli in modo appropriato con int.Creazione di "lunghi" 4 byte in gcc su una macchina Linux a 64 bit
- Come soluzione a breve termine, esiste un modo per far utilizzare a GCC 4 byte anziché 8 per "long"?
- In caso affermativo, quali sono i problemi che dovremmo affrontare? In caso contrario, c'è un modo più semplice per risolvere il problema long e int?
Questa non è una soluzione per il tuo problema immediato (da qui il commento), ma per il codice futuro userei invece tipi di larghezza esatta (ad esempio, 'uint32_t'). –