分享

keil编译出现function abs declared implicitly的解决方法

 华灯初放l 2018-03-30
//wings20180330:
1、在keil开发环境中,main.C文件直接调用disp.c的 fnDisp()函数,其中,fnDisp()函数只有定义,即没有定义声明,也没有引用声明,但编译器不会报error,只会报“declared imiplicityly”的warning。
2、给fnDisp()函数加关键字static,则报error。

USERsrcSHR_RGLV5K_main.c(536) warning  #223-D function abs declared implicitly
解决方法1 #include <stdlib.h>
解决方法2:在调用该函数的前头加了一句“extern double abs(double __x); ”
 
 
另外fabs函数不用加外部声明直接调用也没报警,偏偏是abs函数就有这个问题呢。看了看math.h文件,只见头文件里面有对fabs函数的外部声明,而abs函数只有“   inline double abs(double __x) { returnfabs(__x); }”的声明。
inline修饰的函数,只能在本.c文件使用。所以外部调用abs的时候,会报警告
  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多