NDK - 调用函数传参数错误问题
问题的现象
Jni A文件调用其他C文件定义的函数;
如frustM(float a, float b, float c);
过程
- 在Jni A文件中 frustM(2.0f, -3.0f, 10.0f);
- 在frustM函数的实现文件中添加打印LOGI(三个传入的参数);
ndk-build
编译代码无错误通过,也没有警告- 打印结果为frustM(a=0.000000, b=2.000000, c=0.000000);
研究过程
- 怀疑float问题
- 怀疑溢出问题
最终结局原因
在A文件没有引入包含frustM()
函数的头文件.
解决办法
在A文件中添加包含frustM()
函数的头文件.
提醒
NDK编译时不考虑调用函数是否包含头文件,但是不包含的话会很严重的错误.