c语言函数指针实例

如果使用typedef 是这样的

//可以把一个小写字母变成大写

//char (*pFun)(char);
typedef char (*PTRFUN)(char);
PTRFUN pFun;
char glFun(char a){ return a & 223;}
void print(int a,PTRFUN call)
{
cout<<call(a)<<endl;
}
void main()
{
pFun = glFun;
print('a',pFun);
}

如果不使用typedef是这样的

char (*pFun)(char);
//typedef char (*PTRFUN)(char);
//PTRFUN pFun;
char glFun(char a){ return a & 223;}
void print(char a,char(*pFun)(char))
{
cout<<pFun(a)<<endl;
}
void main()
{
pFun = glFun;
print('a',pFun);
}

比较有意思的是:定义int a;//a是变量名。

定义char (*pFun)(char); //pFun是变量名。写法好奇怪。

原文地址:https://www.cnblogs.com/wasss/p/3725040.html