最近在改一些以前的代码,为了提高可读性和易用性,加了点东西,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)
{
}
这些代码是新添加的内容,删掉后正常
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
下载了你的代码来看 感觉很厉害啊 很规范的样子 各种宏定义,嵌套, 这样子看起来我的程序就是小学生了
我做了类似的程序,也遇到类似的问题,我已经解决了
http://blog.sina.com.cn/s/blog_82ac04b10100t25z.html
参考这个
一周热门 更多>