gpt4 book ai didi

C语言中强制地址跳转详解

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章C语言中强制地址跳转详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

C语言中强制地址跳转详解 。

?
1
#define jump(TargetAddr )  (*((void(*)())(TargetAddr))()

第一个(( void( * )(  )) ,意思为强制类型转换为一个无形参,无返回值的函数指针,(*(TargetAddr))为跳转地址,但是函数指针变量不能为常数所以要加((void( * )(  )) 进行强制类型转换。最后一个()为执行的意思.

整一条指定的目的是为了跳转到一个绝对地址执行函数.

1、在单片机中可以实现软件复位,比如跳转到0地址.

2、如果程序是由多个程序合并的,跳转到某一个确定的用户程序地址执行,如果flash空间足够大的话,可以实现当多份不相同的代码合并为一份后,在软件上做逻辑跳转,好处是新程序不必为旧程序做大量的兼容工作,通常旧程序含有大量的前人的编程习惯,比如宏定义 。

#define ture 0    。

 #define  fault    ture   。

我真见过这么定义的 。

3、bootloader跳转,这个不解释  。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! 。

原文链接:http://blog.csdn.net/ma57457/article/details/64904313 。

最后此篇关于C语言中强制地址跳转详解的文章就讲到这里了,如果你想了解更多关于C语言中强制地址跳转详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com