Введение
В этом лабе мы узнаем о Foreign Function Interface (FFI) Rust, который позволяет взаимодействовать с библиотеками на C, объявляя внешние функции в блоке extern
и аннотируя их атрибутом #[link]
, содержащим имя внешней библиотеки. Пример кода демонстрирует использование FFI для вызова внешних функций из библиотеки libm
, таких как вычисление квадратного корня из комплексного числа с одинарной точностью и вычисление косинуса комплексного числа. Обычно вокруг этих небезопасных вызовов внешних функций используются безопасные обертки. В лабе также представлена минимальная реализация комплексных чисел с одинарной точностью и показано, как вызывать безопасные API, обернутые вокруг небезопасных операций.
Примечание: Если в лабе не указано имя файла, вы можете использовать любое имя файла, которое хотите. Например, вы можете использовать
main.rs
, скомпилировать и запустить его с помощьюrustc main.rs &&./main
.