晕。。。我哪里有递归。。。

2020-01-19 19:37发布

最近在改一些以前的代码,为了提高可读性和易用性,加了点东西,KEIL的linker就告状说我递归了,我愣是没看明白,大伙儿帮我瞧瞧
warning是:
linking...
*** WARNING L13: RECURSIVE CALL TO FUNCTION
    CALLED:  ?CO?MMC_SD
    CALLER:  _GETRESPONSEERR/MMC_SD

下面是新加的内容,只是个结构,还没写完呢

code u8 response_type_list[] =
{
0       
};

typedef u8 R1;

typedef union
{
        R1        r1;
}response;

typedef  void (*PTRGetResponse)(response* );

void GetResponseErr(response* p_res);
void GetResponseR1(response* p_res);
void GetResponseR2(response* p_res);
void GetResponseR3(response* p_res);
void GetResponseR4(response* p_res);
void GetResponseR5(response* p_res);
void GetResponseR6(response* p_res);
void GetResponseR7(response* p_res);

code const PTRGetResponse PTRGetResponseList[] =
{
        &GetResponseErr,
        &GetResponseR1,
        &GetResponseR2,
        &GetResponseR3,
        &GetResponseR4,
        &GetResponseR5,
        &GetResponseR6,
        &GetResponseR7
};

//说明:
//        对于没有的命令和 reserved 的命令的响应
void GetResponseErr(response* p_res)
{
        p_res = NULL;
        DB_SendString(" Error! Undefined CMD! ");
}

void GetResponseR1(response* p_res)
{
}

void GetResponseR2(response* p_res)
{
}

void GetResponseR3(response* p_res)
{
}

void GetResponseR4(response* p_res)
{
       
}

void GetResponseR5(response* p_res)
{
       
}

void GetResponseR6(response* p_res)
{
}

void GetResponseR7(response* p_res)
{
       
}

这些代码是新添加的内容,删掉后正常
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
27条回答
16777216
1楼-- · 2020-01-23 03:19
Pony279 发表于 2012-1-18 10:33
我看了KEIL的help上的说明,说了等于没说。。。
我还是没找到

下载了你的代码来看 感觉很厉害啊 很规范的样子  各种宏定义,嵌套, 这样子看起来我的程序就是小学生了
mafeimafei
2楼-- · 2020-01-23 06:30
我也遇到这个问题,来学习一下。
xiaobenyi
3楼-- · 2020-01-23 09:09
楼主问题解决了吗?
我做了类似的程序,也遇到类似的问题,我已经解决了

http://blog.sina.com.cn/s/blog_82ac04b10100t25z.html
参考这个

一周热门 更多>