这个有时间再好好研究研究,现在明白了,没什么机会去用。把代码贴上。
#include "stdafx.h"
typedef char *(*PtoFun)(); //用typedef 说明可以用PtoFun声明一个向函数的指针类型,
int main(int argc, char* argv[])
{
void *call(PtoFun RtnFun);
PtoFun RtnFun();
printf("%s",call(RtnFun()));
return 0;
}
char *hello() //定义一个函数hello(),该函数返回 char*类型,这个返回值应该学习下
{
return "hello word\n";
}
PtoFun RtnFun() //定义一个函数RtnFun(),该函数返回ptoFun:一个指向函数的指针
{
return hello;
}
void *call(PtoFun RtnFun) //定义一个函数call(),该函数返回一个指针,该指针为void*类型(void*可以指向是任意指针)
{ //这里void* 指的是一个char*;
return (*RtnFun)();
}
参考引用位置:http://www.builder.com.cn/2008/0401/788819.shtml
补充一点。
typedef char *(*PtoFun)(); //用typedef 说明可以用PtoFun声明一个向函数的指针类型,
int main()
{
char* Fun();
// PtoFun = Fun; 错误的方法,要运用PtoFun来定义一个指向函数的指针。
PtoFun RtoFun = Fun; //正确的初始化
printf("%s",Fun());
printf("%s",RtoFun());
printf("%s",(*Fun)()); //这个调用方法比较诡异,但是它是正确的。
printf("%s",(*RtoFun)());
return 0;
}
char* Fun()
{
return "hello world\n";
}