Android NDK inline函数只有第一个实例化的会生效

115 篇文章 0 订阅
31 篇文章 0 订阅

比如

 

一个CPP文件中:定义并且调用了这个函数

inline const int Test(){ return 1;}

 

另一个文件:定义并且调用了一个同名实现不同函数

inline const int Test(){ return 2;}

 

 

那么整个程序中,只有第一个CPP里的Test函数存在,第二个文件里Test也会返回1

 

要避免这个问题只能改用纯static函数

 

太惨了,试了四个小时才确定这坑爹问题。


=====================================

2014年11月2日又发现一个更惨的问题:

如果在不同的文件里定义同名的类,不同的类的成员函数的实现,即使定义成inline,全局也会只有一个函数被实现并且调用。理论上inline应该就是宏。

具体类定义成不同名字,然后调用是用typedef成相同名字,就可以在共同的代码里编译并且运行正常了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值