首页 > 编程语言 > 详细

C语言_函数指针

时间:2021-02-04 22:44:44      阅读:34      评论:0      收藏:0      [点我收藏+]

函数指针是指向函数的指针变量本质是一个指针变量。

 

1: 函数指针的定义

    int (*f) (int x);   /*声明一个函数指针.该函数有一个整形输入参数,一个整形输出参数 */
   f = func;        /* 将func函数的首地址赋给指针f. func函数应该与函数指针f的输出输出参数一致*/

注意:

  • (*f) 外面的括号必须加上.
  • int (*f) (int x); 定义的是函数指针
  • int *f (int x);    这个是函数声明, 该函数返回参数为一个整形变量的指针, 输入参数为一个整形变量

 

无返回值函数指针的定义

void (*fptr)(void);

 

2: 函数指针的赋值

把函数的地址赋值给函数指针,可以采用下面两种形式:

fptr=&Function;
fptr=Function;

取地址运算符&不是必需的,因为单单一个函数标识符就标号表示了它的地址.

 

3: 函数指针的调用
函数指针调用必须在后面加小括号. 可以采用如下两种方式来通过指针调用函数:

第二种格式看上去和函数调用无异。但是有些程序员倾向于使用第一种格式,因为它明确指出是通过指针而非函数名来调用函数的。

x=(*fptr)();
x=fptr();

 

4: 下面举一个例子:

技术分享图片
技术分享图片
typedef unsigned int (*FunctionPointer)  (uint8_t address, uint8_t * pValue); //后面就可以用FunctionPointer来定义该种类型的函数指针
FunctionPointer      GetValue;            //定义一个该类型的函数指针变量
GetValue = &MemoryBank_Dguard_GetValue;       //给该函数指针变量赋值 
..........

//调用该函数
unsigned int Result;
Result = (*GetValue)();

 

C语言_函数指针

原文:https://www.cnblogs.com/Jason-Zou/p/14375249.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!