Lo que es más rápido y lo que no lo es, es algo que cada vez es más difícil de predecir. La razón es que los procesadores ya no son "simples" y con todas las dinámicas complejas y algoritmos detrás de ellos, la velocidad final puede seguir reglas que son totalmente contra-intuitivas.
La única salida es simplemente medir y decidir. También tenga en cuenta que lo que es más rápido depende de los pequeños detalles e incluso para las CPU compatibles, lo que es una optimización para uno puede ser una pesimismo para el otro. En el caso de partes muy críticas, algunos programas de software solo prueban y verifican las temporizaciones para diferentes enfoques en tiempo de ejecución durante la inicialización del programa.
Dicho esto, como regla general, el número entero más rápido que puede tener es int
. Deberías usar otros enteros solo si los necesitas específicamente (por ejemplo, si long
es más grande y necesitas la mayor precisión, o si short
es más pequeño pero suficiente y necesitas guardar la memoria).
Aún mejor si necesita un tamaño específico, utilice un tipo estándar fijo o agregue un typedef
en lugar de solo rociar alrededor de long
donde lo necesite. De esta forma, será más fácil admitir diferentes compiladores y arquitecturas, y también la intención será más clara para quien vaya a leer el código en el futuro.
En Windows, 'long' es de 32 bits. En Linux, 'long' es de 64 bits. Eso rompe muchas aplicaciones. – Mysticial
Relacionado: [¿Cuál es la diferencia entre un int y un largo en C++?] (Http://stackoverflow.com/q/271076/11343) – CharlesB