warning: control reaches end of non-void function 和 warning: implicit declaration of function 'rsgClearColor' is invalid in C99

用gcc编译一个程序的时候出现这样的警告:

warning: control reaches end of non-void function

它的意思是:控制到达非void函数的结尾。就是说你的一些本应带有返回值的函数到达结尾后可能并没有返回任何值。这时候,最好检查一下是否每个控制流都会有返回值。

《Android应用性能优化》 p202

hellorendering.rs 文件:

#pragma version(1)
#pragma rs java_package_name(com.lenovo.vcs.test1)

//脚本实例创建时自动调用
void init(){
}

int root(){
    float red = rsRand(1.0f);
    float green = rsRand(1.0f);
    float blue = rsRand(1.0f);
    
    //清除随机颜色的背景色
    rsgClearColor(red,green,blue,1.0f);    //出错误警告  warning: implicit declaration of function 'rsgClearColor' is invalid in C99
    
    //每秒50帧 = 每帧20毫秒
    return 20;
}

后来发现是忘了包含头文件  #include "rs_graphics.rsh"

发现在Eclipse中。修改成功以后。错误还是会显示。Ctrl A->  Ctrl X-> Ctrl V之后

才不显示红叉号

原文地址:https://www.cnblogs.com/maxiaodoubao/p/4427884.html