|
|
我在老机器上用工具ndkr21e r命令行的方式编译so文件libtest.so
请问我在火山移动怎么调用
// test.cpp
#include <cmath>
#include <cstring>
// 告诉编译器:这些函数使用 C 链接方式(避免 C++ 名称修饰)
extern "C" {
// 1. 整数相加
int add(int a, int b) {
return a + b;
}
// 2. 计算圆的面积(输入半径)
float circle_area(float radius) {
return 3.1415926535f * radius * radius;
}
// 3. 判断是否为素数
int is_prime(int n) {
if (n < 2) return 0;
for (int i = 2; i * i <= n; ++i) {
if (n % i == 0) return 0;
}
return 1;
}
// 4. 字符串反转(注意:修改传入的字符串)
void reverse_string(char* str) {
if (!str) return;
int len = strlen(str);
for (int i = 0; i < len / 2; ++i) {
char temp = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = temp;
}
}
// 5. 计算斐波那契数列第 n 项(非递归,高效)
long long fib(int n) {
if (n <= 1) return n;
long long a = 0, b = 1, c;
for (int i = 2; i <= n; ++i) {
c = a + b;
a = b;
b = c;
}
return b;
}
} // extern "C"
|
|