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之后

才不显示红叉号

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

时间: 2025-01-14 21:56:32

warning: control reaches end of non-void function 和 warning: implicit declaration of function 'rsgClearColor' is invalid in C99的相关文章

warning: control reaches end of non-void function [-Wreturn-type]

今天写数据结构代码的时候,调试一段程序,结果发现编译器提示了一些错误信息: warning: control reaches end of non-void function [-Wreturn-type] 经过百度查询,得知原因是自己定义了一个有返回值的函数,而函数结尾却没有返回值: 或者是主函数的结尾没有添加语句:return 0; int main(void) { //自己的代码 return 0;//要添加这个语句 } 我看了看自己写的函数,非void的函数都有写返回值的,并且主函数也有

linux系统下,警告:warning: implicit declaration of function ‘gets’ [-Wimplicit-function-declaration] 和 warning: the `gets' function is dangerous and should not be used. 的由来和解决方法。

字符数组 的英文名字是 char [] gets()函数的基本用法为:char *gets(char *s); 该函数的参数是一个字符数组,该函数的返回值也是一个字符数组. linux下的代码如下: 1 #include <stdio.h> 2 3 int main() 4 { 5 char a[100] = { 0 }; 6 gets(a); 7 printf("%s\n", a); 8 return 0; 9 }-----------------------------

warning: implicit declaration of function &#39;func1&#39; [-Wimplicit-function-declaration]

warning: implicit declaration of function 'func1' [-Wimplicit-function-declaration] 这个警告是因为func1函数所在的 .h 文件没有生成对应的 .o 文件,即函数所在文件没有编译.解决办法就是加上include. 如果函数func1与主函数在同一文件下,注意函数引用与函数声明的顺序. 如图所示,加引用函数之前声明,或者直接将所调用函数直接放在引用之前都可以. warning: implicit declarat

关于&quot;implicit declaration of function &#39;gettimeofday&#39; is invalid in c99&quot;的解决

http://blog.csdn.net/macmini/article/details/10503799 当我们使用 gettimeofday(&time, NULL);时,会出现这样一个WARNING Implicit declaration of function 'gettimeofday' is invalid in C99 而经过搜索之后发现只需加入 #include <sys/time.h> 这个头文件即可 关于"implicit declaration of

解决编译错误 implicit declaration of function &#39;strptime&#39;

根据man手册,在文件中加上以下定义,应该可以去处该warning #define _XOPEN_SOURCE /* glibc2 needs this */ #include 但不起作用(重新编译还是有该warning) 加上编译选项-D_XOPEN_SOURCE又出现一大推其他编译错误 最后在找到这篇帖子 http://stackoverflow.com/questions/15334558/compiler-gets-warnings-when-using-strptime-functio

【转】implicit declaration of function 这种警告问题的原因及解决方法

在改掉所有的warning时老报一个implicit declaration of function 的警告错误,上网查了下原因,原来有两种情况会产生这种情况 1  没有把函数所在的c文件生成.o目标文件2  在函数所在的c文件中定义了,但是没有在与之相关联的.h文件中声明 http://blog.chinaunix.net/uid-21558711-id-34462.html

Implicit declaration of function &#39;CC_MD5&#39; is invalid in C99

//导入这个就行了#import <CommonCrypto/CommonDigest.h> //没有导包的时候,提示如下: Implicit declaration of function 'CC_MD5' is invalid in C99 CC_MD5( cStr, strlen(cStr),result); Implicit declaration of function 'CC_MD5' is invalid in C99,布布扣,bubuko.com Implicit declar

Implicit declaration of function &#39;ether_ntoa&#39; is invalid in C99

报错代码: strcpy(temp, (char *)ether_ntoa(LLADDR(sdl))); 解决方法: 导入这三个头文件即可, #include <sys/types.h> #include <sys/socket.h> #include <net/ethernet.h> 然后上面那行代码会有一个警告:"Incompatible pointer types passing 'caddr_t' (aka 'char *') to parameter

xCode中去除“Implicit declaration of function &#39;sysctl&#39; is invalid in C99” 警告

http://blog.csdn.net/dreambegin/article/details/8609121 一般出现该问题是因为通过C调用了unix/linux 底层接口,所以需要调整c语言的编译选项,设置方法见下图:(根据实际情况选择相应的编译选项) xCode中去除"Implicit declaration of function 'sysctl' is invalid in C99" 警告