zoukankan      html  css  js  c++  java
  • 函数指针及起别名

    函数指针

    函数指针是指向函数的指针变量 因此函数指针本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。函数指针有两个用途:调用函数和做函数的参数

    函数地址一般都在4的倍数处

    函数首地址为 函数第一行指令位置

    一般在程序装载基址+0x1000 处 为自定义函数跳转表

    调试版会有  

    函数指针声明

    int (_cdecl *pfun)(int ,int);

    上述代码声明了一个函数指针pfun  其详细信息为  调用约定为_cdecl   1整形  参2整形  返回值整形

    函数直接调用:

    定义一个函数

    Void foo()

    {

    ....

    }

    直接调用:

    foo();

    函数指针间接调用:

    Void (*pfun) ();

    Pfun = foo;

    Pfun();

     函数指针类型会进行强类型检查

    Typedef  为某类型起别名

    Typedef void (*pfun)();

    那么  void (*)() == pfun

    Typedef int  DWORD

    那么 int == DWORD

     函数指针不能做任何运算

    学如逆水行舟,不进则退。 博客园技术交流群 群 号:1073255314 (本群没人,刚刚建立 -_-!!! )
  • 相关阅读:
    bzoj1861 [Zjoi2006]Book 书架
    bzoj1208 [HNOI2004]宠物收养所
    bzoj1588 [HNOI2002]营业额统计
    bzoj3295 [Cqoi2011]动态逆序对
    bzoj2716 [Violet 3]天使玩偶
    bzoj1176 [Balkan2007]Mokia
    bzoj3262 陌上花开
    spoj FTOUR2
    bzoj2152 聪聪可可
    poj1741 Tree
  • 原文地址:https://www.cnblogs.com/Mj-NaijAm/p/13601629.html
Copyright © 2011-2022 走看看