nhztb 发表于 2013-10-16 15:01:34

KEIL调用CODE数组 出现WARNING L13: 有何办法处理

本帖最后由 nhztb 于 2013-10-16 15:04 编辑

UINT16 code Gray_33[]=   {
0x0,        
……
……
0xffff,};
void Display_windos(UINT16 xs,UINT16 ys,UINT16 xl,UINT16 yl,UINT8 color)
{              
UINT8k;
k=0x0;

        for(k=0;k<(33);k++)
                Display_bock_c(xs,ys+k*((yl)/33),(xl),yl/33,Gray_33&color);
}

有两个以上函数调用Gray_33,
这样就会出现 *** WARNING L13: RECURSIVE CALL TO FUNCTION
不知道是什么原因造成的。有何办法解决?

nhztb 发表于 2013-10-16 15:20:59

很奇怪,把数组定义到另一个C文件中,就没有这个警告。没有搞清楚是什么问题。

GZLJZ 发表于 2013-10-16 15:38:47

应该没有这个C文件中没有声明可调用这个数组

nhztb 发表于 2013-10-16 17:05:12

GZLJZ 发表于 2013-10-16 15:38 static/image/common/back.gif
应该没有这个C文件中没有声明可调用这个数组

一开始是放在同一个C文件里的,就有警告。
后来把数组放另一个文件里了,就没有警告

GZLJZ 发表于 2013-10-16 20:55:42

本帖最后由 GZLJZ 于 2013-10-16 21:03 编辑

nhztb 发表于 2013-10-16 17:05 static/image/common/back.gif
一开始是放在同一个C文件里的,就有警告。
后来把数组放另一个文件里了,就没有警告 ...

那就是这个C文件没有说明被外部调用
总之就是声明CODE数组
这个C文件声明CODE数组可被外部调用
另个C文件要用CODE数组,还要声明调用外部文件(CODE数组)的
通常做法是,声明的东西放在H文件里,要用哪个声明就包含该H文件就可以了,这个又不怕重复的

nhztb 发表于 2013-10-17 09:25:54

GZLJZ 发表于 2013-10-16 20:55 static/image/common/back.gif
那就是这个C文件没有说明被外部调用
总之就是声明CODE数组
这个C文件声明CODE数组可被外部调用


一开始是在同一个C文件内定义 一个CODE数组,还有两个函数;都会调用这个数组。
编译就出上面警告。

你是指调用同一个C文件内的数组,也要在外面声明下是吗??等下试下。我这边试的结果是放在同一个C文件内,声明了是外部也会警告。

阿文 发表于 2015-3-5 11:39:47

我也遇到奇葩的问题,不知道为什么么。
页: [1]
查看完整版本: KEIL调用CODE数组 出现WARNING L13: 有何办法处理