¿Se garantiza que long tendrá 32 bits?
A pesar de las suposiciones comunes basadas en el estándar C, surge la pregunta de si se garantiza que long tendrá al menos 32 bits. El Estándar clasifica los tipos integrales fundamentales como:
sizeof(char) ≤ sizeof(short int) ≤ sizeof(int) ≤ sizeof(long int)
Sin embargo, muchos suponen que en base a esto jerarquía, long debe tener 32 bits. Sin embargo, el Estándar establece explícitamente que el número de bits en un byte está definido por la implementación.
Afirmación de Alf P. Steinbach
A pesar de esta aparente contradicción, Alf P. Steinbach afirmó que se garantiza que long será de 32 bits. Basó esta afirmación en el límite implícito del rango de valores que puede contener un largo (LONG_MIN a LONG_MAX).
El Estándar C hace referencia al Estándar C (18.3.2), que define:
LONG_MIN ≤ -2^31 1 LONG_MAX ≥ 2^31 - 1
Conexión a representación de 32 bits
Si bien esto establece un rango largo, no garantiza explícitamente 32 bits. Sin embargo, hay dos posibilidades:
Conclusión
Aunque el estándar C no requiere explícitamente que long tenga 32 bits, el requisito de rango mínimo (LONG_MIN a LONG_MAX) lo requiere implícitamente. Esto se debe a que representar estos valores requiere 32 bits de almacenamiento o un mecanismo específico de implementación con capacidad de valor equivalente. Por lo tanto, se puede concluir que C garantiza que long tenga al menos 32 bits.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3