16 진수 표현을 기반으로 정수 매개 변수를 선언하고 싶습니다. 의 차이점은 무엇입니까 : (. 그리고 그래, 나는이 그냥 -1
것을 알고)16 진수 상수
INTEGER(kind=int32), PARAMETER :: a = Z'FFFFFFFF'
INTEGER(kind=int32), PARAMETER :: b = int(Z'FFFFFFFF', kind=int32)
INTEGER(kind=int32), PARAMETER :: c = transfer(Z'FFFFFFFF', 1_int32)
는
gfortran
나에게 유용하게 나는 것을 무시할 수 있다고 말해 (컴파일시 정수 오버플로 오류를 줄 것으로 보인다 -fno-range-check
으로) 위의 코드는 a
이고 b
이지만 c는 그렇지 않습니다.
이 코드는 다른 컴파일러로 컴파일 될 수 있으므로 Fortran 2003을 준수해야합니다.
IIRC Fortran 2003과 2008 사이에 규칙이 일부 변경되었습니다. 엄격하게 2003이 필요합니까? –
소프트웨어 상태 Fortran 2003의 코드 표준 – chw21