2

我正在将一个整数设置为小于其最大值的值,但收到一个错误,即它对于它来说太大了。为什么是这样?这是一个示例程序。

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
4

1 回答 1

7

您需要像这样附加i3210000000000001000000000000_i32. gfortran 抱怨这个数字太大了。1000000000000是一个短整数,而不是超长整数。1000000000000_i32是一个超长整数。它不是在抱怨变量,而是在抱怨常数。

于 2013-09-19T00:11:54.947 回答