zoukankan      html  css  js  c++  java
  • 函数指针

    首先要理解以下三个问题:
    (1)C 语言中函数名直接对应于函数生成的指令代码内存中的地址,因此函数名可以直接赋给指向函数的指针
    (2)调用函数实际上等同于"调转指令+参数传递处理+回归位置入栈",本质上最核心的操作是将函数生成的目标代
    码的首地址赋给 CPU 的 PC 寄存器;
    (3)因为函数调用的本质是跳转到某一个地址单元的 code 去执行,所以可以"调用"一个根本就不存在的函数实体

    typedef void (*lpFunction) ( ); /* 定义一个无参数、无返回类型的函数指针类型*/
    /* 定义一个函数指针,指向 CPU 启动后所执行第一条指令的位置*/
    lpFunction lpReset = (lpFunction)0xF000FFF0;
    lpReset(); /* 调用函数 */

    NOTE:

    函数无它,唯指令集合耳;你可以调用一个没有函数体的函数,本质上只是换
    一个地址开始执行指令!

  • 相关阅读:
    java学习笔记(5)
    java学习笔记(4)
    java学习笔记(3)
    java学习笔记(2)
    java学习笔记(1)
    很棒的Nandflash资料
    Tx2440_Lcd
    git-github学习心得
    多文档编辑器
    假设检验
  • 原文地址:https://www.cnblogs.com/yuankaituo/p/4387572.html
Copyright © 2011-2022 走看看