include를 사용하여 Fortran 코드를 컴파일하는 것이 #include와 다른 이유는 무엇입니까?

include를 사용하여 Fortran 코드를 컴파일하는 것이 #include와 다른 이유는 무엇입니까?

를 사용하지 않는 경우 일부 C 줄이 포함된 텍스트 파일이 fortran77 코드에 포함되는 이유를 이해할 수 없습니다 #include. 기본 파일에 추가할 일부 텍스트를 읽어야 하는 코드 예제를 작성했습니다 test.F.

       program testInclude
       include 'includetest.txt'
       end program

includetest.txt포함할 파일 에는 다음 내용이 포함됩니다.


#define _TEST_
#ifdef _TEST_
       write(*,*) 'check'
#endif

이것을 컴파일하면 gfortran test.F다음과 같은 경고가 나타납니다.

includetest.txt:2:2:

    2 | #define _TEST_
      |  1
Warning: Illegal preprocessor directive
includetest.txt:3:2:

    3 | #ifdef _TEST_
      |  1
Warning: Illegal preprocessor directive
includetest.txt:5:2:

    5 | #endif
      |  1
Warning: Illegal preprocessor directive

의 두 번째 줄에 #include대신 사용하면 경고가 표시되지 않습니다. 포트란 문과 C 문이 동일한 작업을 수행하고 다른 파일에 텍스트 몇 줄을 추가하면 안 되나요? 경고는 무엇을 의미합니까?includetest.Finclude#include

이는 Arch 및 Mac OS X의 gcc 12.2.0과 CentOS의 gcc 4.8.5에서 발생합니다.

답변1

전처리기 #include 지시문에 포함된 파일에는 #define 등이 포함될 수 있습니다. 컴파일러에 포함된 파일의 INCLUDE 문에는 FORTRAN 문만 포함되어야 합니다.

관련 정보