打印

请求帮助:关于KEIL-C下结构体用于函数调用的操作

[复制链接]
3477|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zybreeze|  楼主 | 2007-1-16 15:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在Keil-C下做液晶显示程序时,编译后出现函数递归调用的错误
     "RECURSIVE CALL TO SEGMENT"
     "APPLICATION CONTAINS TOO MANY RECURSIONS"
但程序中没有用什么递归啊,请求帮助。

如下程序中
Disp_Num(int num); Disp_Code(int CodeSn); 中都对CODE(字符表格)操作,若屏蔽对CODE的操作,
错误就没了 // 或者在定义结构体数组存放函数地址时,使用XDATA,错误也没了。

程序框架如下:

 

//函数声明
void Disp_Page_000(void);
void Disp_Page_001(void);
void Disp_Page_002(void);
void Disp_Page_003(void);
void Disp_Page_004(void);
void Disp_Page_005(void);
void Disp_Page_006(void);
      ....

//定义结构体
typedef struct xxx
{
   void (*ShowPageDisp)();
};

//结构体数组存放函数地址
code struct xxx LcmShowPage[]={
                                Disp_Page_001,
                                Disp_Page_002,
    Disp_Page_003,
    Disp_Page_004,
    Disp_Page_005,
    Disp_Page_006
         };

void main()
{
    //函数调用
    LcmShowPage[0].ShowPageDisp(); 
}


//函数定义
void Disp_Page_000(void)
{
   Disp_Num(123);             // 显示数据函数
   Disp_Code(123);            // 显示字符函数


void Disp_Page_001(void)
{
   Disp_Num(234);
   Disp_Code(234);

 .....    

相关帖子

沙发
zybreeze|  楼主 | 2007-1-18 21:21 | 只看该作者

恳请高手指点啊,郁闷多天了!

使用特权

评论回复
板凳
mon51| | 2007-1-19 14:21 | 只看该作者

你的子程序内部定义了常量。

使用特权

评论回复
地板
lixun00| | 2007-1-19 14:55 | 只看该作者

一般编译器这个不会出错的,你仔细检查一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝