我将一个整数设置为小于其最大值的值,但是收到的错误是它太大了。为什么是这样?这是一个示例程序。
program max_int
integer, parameter :: i32 = selected_int_kind(32)
integer(kind = i32) :: my_int
!The largest integer of this kind
print*, huge(my_int)
!This works
my_int = 100000
!This doesn't, and gives an error.
!my_int = 1000000000000
print*, my_int
end program
答案 0 :(得分:6)
您需要将i32
追加到1000000000000
,如下所示:1000000000000_i32
。 gfortran抱怨说这个数字太大了。 1000000000000
是一个短整数,而不是超长整数。 1000000000000_i32
是一个超长整数。它没有抱怨变量,它抱怨常数。