El diseño de C permite que los tipos de enteros tengan tamaños variables según la arquitectura de la máquina, una característica que a menudo se critica por generar problemas de portabilidad. Sin embargo, el análisis histórico demuestra que esta flexibilidad fue una decisión deliberada y necesaria para el éxito del lenguaje en la década de 1970. En ese momento, las arquitecturas de computadoras eran extremadamente diversas, con tamaños de palabra que oscilaban entre 12 y 60 bits, y sistemas de codificación de caracteres inconsistentes. Imponer un tamaño fijo de 32 bits para 'int' habría resultado en una pérdida de rendimiento significativa en máquinas de 16 o 36 bits, ya que requeriría instrucciones adicionales para operaciones básicas. La filosofía de C, heredada de los lenguajes BCPL y B, priorizaba la eficiencia nativa en la máquina objetivo. Al definir 'int' como el tamaño natural sugerido por la arquitectura, C logró ejecutar el sistema UNIX y el propio lenguaje de forma eficiente en una amplia gama de hardware, desde minicomputadoras DEC hasta mainframes IBM. Esta adaptabilidad fue fundamental para la adopción temprana de C y la portabilidad de UNIX, estableciendo un estándar que sigue siendo relevante hoy en día, donde la eficiencia en el código de bajo nivel sigue siendo un factor crítico en el desarrollo de sistemas.
