Estoy trabajando en portar una aplicación a 64 bits en la plataforma Linux. La aplicación actualmente es compatible con Linux, Windows, Mac de 32 bits y Windows de 64 bits. Uno de los problemas que nos encontramos con frecuencia es el uso de long para int y viceversa. Esto no fue un problema hasta ahora, ya que long e int son intercambiables (ambos son 4 bytes) en las plataformas en las que actualmente se admite la aplicación. La base de código es enorme, con una gran cantidad de código heredado con #defines para muchos tipos de datos, hace que sea engorroso buscar todo el uso de largo y reemplazar apropiadamente con int.Haciendo 'largos' 4 bytes en gcc en una máquina Linux de 64 bits
- Como solución a corto plazo, ¿hay alguna manera de hacer que GCC use 4 bytes en lugar de 8 para "long"?
- Si es así, ¿cuáles son los problemas que podríamos enfrentar? Si no, ¿hay una manera más fácil de solucionar el problema largo e int?
Esto no es una solución para su problema inmediato (de ahí el comentario), pero en el futuro usaría tipos de ancho exactos (por ejemplo, 'uint32_t'). –