Tengo varios años de experiencia en programación en c y c++
El cambio de arquitectura se debe principalmente cuando se trabajan ficheros o transmisión de datos, porque no es lo mismo guardar un int(64) que un int(32), eso mismo ocurre con el envió de datos sea por TCP o udp, por lo general uso tipos de datos mas específicos para que una aplicación funcione en ambas arquitecturas como por ejemplo u_int32_t o u_int64_t.