Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Fortran > Условная компилация


Автор: Traum 13.3.2014, 18:05
Здравствуйте!

Подскажите, пожалуйста, почему у меня не работает условная компиляция в Compaq Visual Fortran:

Код

      !DEC$ IF (SELECTED_REAL_KIND == 4)
         call LSLRG(SIZE(X), A, SIZE(X), B, 1, X)    ! здесь на вход требуется real (4)
      !DEC$ ELSE
        call DLSLRG(SIZE(X), A, SIZE(X), B, 1, X)   ! здесь на вход требуется real (8)
      !DEC$ ENDIF



Если я выбираю в проекте настройку на real(4) и компилирую, то компилятор ругается на строку 4, хотя по уловию компиляции он должен ее игнорировать.
Если я выбираю в проекте настройку на real(8) и компилирую, то компилятор ругается на строку 2, хотя по уловию компиляции он должен ее игнорировать.

Что я сделал не так?


Автор: Фантом 13.3.2014, 18:16
Цитата(Traum @  13.3.2014,  19:05 Найти цитируемый пост)

Что я сделал не так?

Вообще говоря, правильный ответ звучит так: воспользовались древним компилятором, который и в лучшие годы был, мягко говоря, не слишком пристойным (ввиду хронического несоответствия стандартам).

А более полезный ответ такой: а зачем Вам, собственно, условная компиляция? Все то же самое можно сделать средствами языка.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)