Я сталкиваюсь с проблемами совместимости с целочисленными типами при переносе большой базы кода в системы x64.
Подпрограммы Fortran, которые ожидают, что INTEGER * 4 передаются целым числам, определенным как long на стороне C / C ++.Вот пример кода:
Интерфейс Fortran:
SUBROUTINE FOO(N)
INTEGER*4 N
!! DO SOME WORK
END
Код C / C ++:
long n = 1;
FOO(&n);
Конечно, это не работает при компиляции для x64,и целое число должно быть определено как int.Эти типы вызовов выполняются бесчисленное количество раз, и замена их вручную займет вечность.
Существует ли более эффективный способ внесения этих изменений?