完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
函数指针是C编程语言的许多困难特性之一。
由于C编译器对8051体系结构的独特要求,函数指针和可重入函数面临着更大的挑战。 这主要是由于传递函数参数的方式所致。 通常,(对于除8051之外的大多数芯片),使用PUSH和POP汇编指令在堆栈上传递函数参数。 由于8051的堆栈大小有限(只有128字节,在某些设备上甚至低至64字节),因此必须使用不同的技术来传递函数参数。 当英特尔为8051推出PL/M-51编译器时,他们引入了在固定内存位置存储参数的技术。 当调用链接器时,它构建程序的调用树,找出哪些函数参数是互斥的,并覆盖它们。 这是链接器覆盖指令的开始。 由于PL/M-51不支持函数指针,因此从未出现过间接函数调用的问题。 然而,对于C语言,问题比比皆是。 链接器如何“知道”将哪个内存用于间接函数的参数? 如何将间接调用的函数添加到调用树中?
|
|
只有小组成员才能发言,加入小组>>
5739 浏览 5 评论
ARM9学习4-S3C2410的启动代码分析-For ADSv1.2
2844 浏览 0 评论
485浏览 1评论
429浏览 1评论
424浏览 0评论
安装适用于STMicroelectronics Edition 1.1版的Keil MDK应用说明
265浏览 0评论
495浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 20:04 , Processed in 0.617117 second(s), Total 72, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号