哪位C高手帮忙解释一下这一句,我似懂非懂

[复制链接]
 楼主| quguoli81 发表于 2007-11-20 14:38 | 显示全部楼层 |阅读模式
#define Page_Erase   PGM[21]=0x40; temp = ((unsigned char(*)(unsigned int))(PGM))
 楼主| quguoli81 发表于 2007-11-20 17:06 | 显示全部楼层

是我问的太白痴,还是没有把问题表达清楚〉?

  
computer00 发表于 2007-11-20 17:16 | 显示全部楼层

宏定义

以后程序中出的Page_Erase,在编译时,编译器将使用PGM[21]=0x40;&nbsp;temp&nbsp;=&nbsp;((unsigned&nbsp;char(*)(unsigned&nbsp;int))(PGM))来代替Page_Erase。<br />
 楼主| quguoli81 发表于 2007-11-20 17:29 | 显示全部楼层

00,这一句((unsigned char(*)(unsigned int))(PGM))是

把什么赋给了TEMP?<br />
djyos 发表于 2007-11-20 17:39 | 显示全部楼层

函数指针

第一句很明白。<br />第二句是把PMG转换成函数指针赋给了temp,该函数的返回值是unsigned&nbsp;char,参数是unsigned&nbsp;int。<br />这样定义不太好,最好是用do--while循环包起来,否则,看看下列程序的后果吧:<br /><br />if(i==0)<br />&nbsp;&nbsp;&nbsp;&nbsp;Page_Erase;
至爱森林 发表于 2007-11-20 21:33 | 显示全部楼层

多谢ls,收了

  
sinanjj 发表于 2007-11-23 17:17 | 显示全部楼层

顶一下,

我也看不出来,&nbsp;查一下资料先
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

258

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部