c/c++ 函数类型和函数指针类型 详解 | 您所在的位置:网站首页 › 心形函数是什么类型的函数图片 › c/c++ 函数类型和函数指针类型 详解 |
c/c++ 中数据结构跟指针真的是很强大 今天解释下 函数类型和函数指针类型 1.函数类型 在C语言中,函数也是一种类型,可以定义指向函数的指针。我们知道,指针变量的内存单元存放一个地址值, 而函数指针存放的就是函数的入口地址. #include 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 %s\n", 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 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 |
CopyRight 2018-2019 实验室设备网 版权所有 |