首页 > 编程知识 正文

cc 函数类型和函数指针类型 详解,函数指针的类型

时间:2023-05-06 08:22:01 阅读:190988 作者:4468

c/c++ 中数据结构跟指针真的是很强大

今天解释下 函数类型和函数指针类型

1.函数类型
在C语言中,函数也是一种类型,可以定义指向函数的指针。我们知道,指针变量的内存单元存放一个地址值,
而函数指针存放的就是函数的入口地址.

#include <stdio.h>void say_hello(const char *str);void (*fptr)(const char *);int main(void){ void (*fptr)(const char *) = say_hello; fptr("KingPlesk"); return 0;}void say_hello(const char *str){ printf("Hello %sn", str);}

首先要理解的是 void (*fptr)(const char *)
这是定义一个变量
例如 void *ptr   这个是一个函数指针变量,不要把这个void (*fptr)(const char *) 当作一个声明定义。
typedef 是一个类型声明的 关键字,

void say_hello(const char *str);  函数也是一种类型,那么就可以用typedef来声明

typedef void FUNC_HELLO_PTR(const char *str);

—————————————————————————

FUNC_HELLO_PTR   等于  void say_hello(const char *str);  声明

FUNC_HELLO_PTR    *p = void (*fptr)(const char *str);  函数指针

看下我写的一个实例:演示函数指针和 函数类型声明

C++ Demo

#include <iostream>void hello(void);//函数声明typedef void FUNC_HELLO_PTR(void);//typedef函数类型void (*hellotest)(void);//定义一个函数指针int main(int argc, char *argv[]){ //使用函数类型指针方式调用 FUNC_HELLO_PTR *t = hello; t(); //直接使用函数指针调用 hellotest = hello; hellotest(); return 0;}void hello(void){ std::cout<<"Test"<<std::endl;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。