2017-09-17 5 views
0

는 다음 프로그램을 pgfortangfortranFortran에서 마침표 ('.')없이 TRUE 및 FALSE 상수는 무엇입니까?

program 
    print*,.true.,.false. 
    print*,true,false 
end program 

프로그램이 인쇄 다른 값을 고려한다.

pgfortran 출력

T F 
0.00000000  0.00000000 

gfortran 출력

T F 
4.59135442E-41 5.87982594E-39 

질문 - 논리적 상수 .true..false.TF과 같이 적절히 표시된다. 그러나이 상수는 truefalse입니다. 상수 주위에 .이 없습니까?

+4

"암시 적 없음"과 암시 적 선언을 살펴보면 TRUE 및 FALSE가 REAL 변수로 암시 적으로 정의된다는 것을 알 수 있습니다 (여기서 초기화되지 않았으므로 임의의 값으로 표시됨). – albert

답변

5

albert가 제안한 것처럼 TRUE와 FALSE는 Fortran에서 본질적인 의미가 없습니다. 이들은 선언하고 값을 할당해야하는 일반 식별자입니다. 때로는 응용 프로그램이 일련의 공급 업체 선언을 사용하는 모듈을 사용하며, 특히 Windows 플랫폼에서 명명 된 상수로 TRUE 및 FALSE 선언을 포함 할 수 있습니다.

예에서 TRUE 및 FALSE는 암시 적으로 초기화되지 않은 변수로 선언됩니다. 초기화되지 않았기 때문에이 값은 정의되지 않습니다. 일부 구현에서는 초기화되지 않은 변수에 0을 주지만 대부분은 초기화하지 않습니다. 기본값을 0으로하지 않는 것이 좋습니다. 그러면 프로그래밍 오류를 조기에 인식 할 수 있습니다.

우리가 LOGICAL 값에 대해 논할 때, an old post of mine on the subject을 알려 드리겠습니다.