我正在做一个小程序,解决基本的数学运算(*,/,+,-)和我使用long long int(64位数字),所以我可以做很大的数学运算数字。 但有一个问题。我可以检查操作数是否超出限制(使用LONG_LONG_MAX和LONG_LONG_MIN)。 但是,当我(例如)乘以两个非常大的数字(导致long long int溢出)LONG_LONG_MAX检查不起作用。相反,结果是-4。 C/C++检查有
,所以我散列和定义这些类型/功能: subtype string2 is String(1..2);
function cString2 is new Ada.Unchecked_Conversion(string2, long_integer);
function cChar is new Ada.Unchecked_Conversion(character, long_integer);