Я переношу некоторый код из Intel Fortran в gfortran, и я не могу понять, как переносить функцию Intel INT_PTR_KIND().ifort -> gfortran: INT_PTR_KIND()
program main
integer (INT_PTR_KIND()) v1
integer v2
print*, "sizeof v1:", sizeof(v1)
print*, "sizeof v2:", sizeof(v2)
print*, "sizeof INT_PTR_KIND:", INT_PTR_KIND()
end program main
дает мне компилятор Intel следующее:
sizeof v1: 8
sizeof v2: 4
sizeof INT_PTR_KIND: 8
Пожалуйста, как можно достичь следующих результатов в gfortran? Я пробовал с добрым (1), sizeof, ... все дает мне 4.
Проблема в том, что на моем 64arch c_intptr_t возвращает 4 и INT_PTR_KIND() 8 – miro
Вы уверены, что работаете в 64-битном режиме? Они должны показывать то же самое, иначе это очень серьезная ошибка. КАК ТОЧНО вы спрашиваете? –
@fjordrunner Если вы делаете 'sizeof (c_intptr_t)', то вы делаете это неправильно. Вы должны сделать 'sizeof (1_c_intptr_t)' –