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

 更新时间:2017年05月14日 09:19:31   投稿:lqh  
这篇文章主要介绍了C语言中强制地址跳转详解的相关资料,需要的朋友可以参考下

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

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

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

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

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

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

#define ture 0   

 #define  fault    ture  

我真见过这么定义的

3、bootloader跳转,这个不解释 

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

相关文章

  • C语言切割多层字符串(strtok_r strtok使用方法)

    C语言切割多层字符串(strtok_r strtok使用方法)

    这篇文章主要介绍了C语言切割多层字符串的方法,说了strtok的弱点,使用strtok_r的方法
    2013-11-11
  • C语言判断字符串长度的方法小结

    C语言判断字符串长度的方法小结

    学过C/C++的人都知道,在C/C++中并没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取其长度,那么对于其他类型的数组如何获取他们的长度呢?本文给大家介绍了C语言判断字符串长度的方法小结,需要的朋友可以参考下
    2024-08-08
  • C++11右值引用和std::move语句实例解析(推荐)

    C++11右值引用和std::move语句实例解析(推荐)

    右值引用(及其支持的Move语意和完美转发)是C++0x将要加入的最重大语言特性之一。这篇文章主要介绍了C++11右值引用和std::move语句实例解析,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • 如何正确的使用语句块

    如何正确的使用语句块

    本篇文章是对正确使用语句块进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C语言代码实现俄罗斯方块

    C语言代码实现俄罗斯方块

    这篇文章主要为大家详细介绍了C语言代码实现俄罗斯方块,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • C++ vector与数组转换写入/读出文件方式

    C++ vector与数组转换写入/读出文件方式

    这篇文章主要介绍了C++ vector与数组转换写入/读出文件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C语言实现进制转换函数的实例详解

    C语言实现进制转换函数的实例详解

    这篇文章主要介绍了C语言实现进制转换函数的实例详解的相关资料,这里提供实现实例帮助大家实现改功能,需要的朋友可以参考下
    2017-08-08
  • c++实现超简单的贪吃蛇游戏实例介绍

    c++实现超简单的贪吃蛇游戏实例介绍

    大家好,本篇文章主要讲的是c++实现超简单的贪吃蛇游戏实例介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • C语言中回调函数的使用详情

    C语言中回调函数的使用详情

    这篇文章主要介绍了C语言中回调函数的使用详情,阅读下文我们将学习到架构的核心理念和需、回调函数的作用、回调函数的程序编写等内容,需要的小伙伴可以参考一下
    2022-03-03
  • Matlab实现三维投影绘制的示例代码

    Matlab实现三维投影绘制的示例代码

    这篇文章系小编为大家带来了一个三维投影绘制函数(三视图绘制),函数支持三维曲线、曲面、三维多边形、参数方程曲线、参数方程曲面的投影绘制,需要的可以参考一下
    2022-08-08

最新评论