Error bcc32c: el literal integer es demasiado grande para ser representado en cualquier tipo de entero
Tengo un literal de __int64 grande:
const __int64 PwTab[] = {
50036500600837093008i64,
3006206760097890820056i64
};
Esto es aceptado correctamente por bcc32
(compilador clásico de Borland) pero no por bcc32c
(clang).
El error para el compilador clang es:
el literal entero es demasiado grande para ser representado en cualquier tipo entero
Utilizo el sufijo i64
para indicarle a la computadora que es un literal entero de 64 bits.
¿Cómo puedo escribir un literal __int64
en clang, que también sea compatible con el tipo __int64
en el compilador clásico?
davy.ai
Una solución es utilizar el sufijo
LL
en lugar dei64
para el literal__int64
. Este es un sufijo estándar que es reconocido tanto porbcc32
como porclang
.Aquí tienes un ejemplo de cómo usar el sufijo
LL
:Con esta modificación, el código debería compilar sin errores en ambos compiladores.