使用typedef给函数指针类型一个别名

//使用typedef给函数指针类型一个别名

//typedef没有定义新的类型,给已经有的类型起一个别名,减少输入

typedef int(PADD)(int a, int b); //类型, PADD存储函数地址

typedef void(*MEG)(char s[]);

void main()

{

PADD padd1 = add; //创建函数指针

printf("%d",padd1(11,23));

MEG meg1 = msg;
meg1("心里的雨倾盆的下");

getchar();

}

原文地址:https://www.cnblogs.com/wdmx/p/9542778.html

时间: 2024-08-03 18:19:02

使用typedef给函数指针类型一个别名的相关文章

用typedef定义函数指针类型(转)

typedef可以用于定义函数指针类型: [语法]typedef <返回类型> (*<函数类型名>)(参数表)typedef <返回类型> (<类名>::*<函数类型名>)(参数表) [用途]1.可以用来定义该函数类型的函数指针,就不用每次使用函数指针都要写一次函数原型了:2.有了类型名,就可以使用在容器里面,譬如map<int, 类型名>,用于实现灵活的函数调用. [示例] 例1:typedef void (*PF)(int x);

由typedef和函数指针引起的危机

由typedef和函数指针引起的危机 昨天阅读了大神强哥的代码,发现里面用到了函数指针,也用到的typedef.本来我自以为对这两个概念有一定的认识,但是突然发现这两个东西居然用到了一起!!!!(在一起了也不说一声,一点心理准备都没有): typedef int (* fp)(void *para, void *end); 瞬间就蒙了,这是个啥东西???于是我开始看书,上网查资料,想弄明白.在这个过程中,我发现自己不仅仅是对这两个概念理解不够!!!而是,对数组.指针.变量的理解都不够.这引发了我

如何声明函数指针类型

函数指针就是指向函数的指针,可以用与函数指针类型对应的函数名赋值,可以用来调用函数.全局函数指针常用于回调(函数). 声明函数指针类型应根据其所指向的函数去声明. 例如声明函数 int fun(int i,float k); 的函数指针类型,只需仿照函数这样写 typedef int (*Pfun)(int i, float k); 如此便可定义该类型的函数指针变量 Pfun pfun = NULL;

用typedef定义函数指针的问题

在学习windows API的时候,遇到下面这段代码 以前见过的typedef的用法都是给一个数据类型取一个别名 typedef oldTypeName newTypeName 这种给数据类型取一个函数名字的还是第一次看到, 于是做了一下实验,如下图: 上图定义了一个TemplateFn模版函数和Addition函数, 用TemplateFn声明了一个变量a,并将Addition赋值给a, 结果编译器报错: 如上图蓝色光标所示,数据不匹配. 原因是因为Addition返回的是一个函数指针,也即地

【实习记】2014-08-27堆排序理解总结+使用typedef指代函数指针

过程记录 4个月前C语言版的七大排序算法实践让我在写C++版时轻车熟路.特别是冒泡,插入,希尔,选择这四种排序不用调试即运行成功.输出的效果与C语言做的版本完全一样,其中令我印象深刻的是,cout对浮点的处理远不如printf简单明了.非常让开发者难受. 写C++版时有所改进. #define sortfunc _selsort 可以用 typedef void (*sort_t)(vector<int>& arr); sort_t sortfunc = _selsort; 两句代替.

从std::function中抽离出函数指针类型

template <typename Function>struct function_traits : public function_traits < decltype(&Function::operator()) >{ }; template <typename ClassType, typename ReturnType, typename Args>struct function_traits < ReturnType(ClassType::*)

函数指针的一个的demo

#include <stdio.h> typedef void (*fun_cb)(int a, int b); static fun_cb exe_fun_cb; void fun_cb_input(int, int); void setUp_cb(fun_cb); void main() { setUp_cb(fun_cb_input); } void setUp_cb(fun_cb fun_cb_param) { printf("\n ready to use callback

c++11 using关键字代替typedef定义函数指针

#include <windows.h> typedef int(__stdcall *pMessageBoxA)(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType); using pFnMessageBoxA = int(__stdcall *)(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType); int main() { pMessageBoxA MessageBoxA

c语言定义函数指针和typedef简写

二种方法来定义函数指针 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<Windows.h> 4 5 int add(int a, int b) 6 { 7 return a + b; 8 } 9 10 //void msg(char s[]) 11 //void (*p)(char s[]) 函数指针的定义方法 12 //void (*)(char *s) 函数指针的类型 13 14 void msg(char