首页 > 编程 > C > 正文

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

2020-02-24 14:27:06
字体:
来源:转载
供稿:网友

当我们用C语言编写一个简单的系统程序时,我们需要经常更改页面以删除输出内容,所以今天武林技术频道小编为大家详解C语言中强制地址跳转的方法,一起来学习一下吧!

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

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

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

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

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

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

#define ture 0   

 #define  fault    ture  

我真见过这么定义的

3、bootloader跳转,这个不解释 

以上就是详解C语言中强制地址跳转的方法,如果你还想了解更多专业的信息,你可以来关注武林技术频道,很高兴为你服务!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选