Board logo

标题: Codewarrior 程序调用问题 [打印本页]

作者: lijin_as    时间: 2005-7-10 15:16     标题: Codewarrior 程序调用问题

我在研究 13193evk-A00开发包中的示例程序 RX Range Demo Plus.mcp
发现一个问题。 在range_demo_plus_rx.c 程序中,定义了两个函数
void MCPS_data_indication(rx_packet_t *rx_packet)   和
void MLME_MC13192_reset_indication()

然而,除了函数定义以外,在任何头文件(.h)处均未见到对这两个函数的声明,
然而,该两个函数却在simple_phy.c 中被其他函数调用,这好像违反了
一般的C语言调用规则,而且是子程序文件里的函数调用母程序文件里的函数,
不知道是如何实现的?为什么可以这么用?似乎codewarrior IDE 编译器
与其他C语言编译器有很大不同,我想知道除了我发现的这个,还有哪些不同?

另外,void MLME_MC13192_reset_indication() 的参数传递部分留空,
似乎也不太合规矩,按常规应表示为void MLME_MC13192_reset_indication(void)
为何也能通过编译器的编译?

请指教,谢谢!
作者: lijin_as    时间: 2005-7-11 10:49

怎么没人回答,只好自己顶一下
作者: lijin_as    时间: 2005-7-12 08:37

版主都哪里去了,没人回答,只好自己再顶一下
作者: seuafu2005    时间: 2005-7-12 10:16

确实比较奇怪,不知道为什么编译器可以通过,也许这是个bug
作者: strongchen    时间: 2005-7-12 11:15

可以发邮件到cw_support@freescale.com去问一下。用中文应该也是可以的。
作者: lijin_as    时间: 2005-7-12 17:16

我不认为是个bug,这两个函数是很重要的,非的如此用才能实现从中断传递状态信号到主程序。我认为是freescale 的程序设计师费尽心思的巧妙构思。但是我实在是理解不了。
作者: lijin_as    时间: 2005-7-12 17:18

就这个问题,我打了热线电话去,他们也解决不了,只是让我把问题翻译成英文,他们转发给美国总部了




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0