如何定义一个函数指针???
例如:
.h文件
void kk(void);
typedef void (*pk)(int);
.cpp文件
void kk(void){
cout < < "kk < <endl;
}
......这个函数指针怎么定义啊
[解决办法]
void kk(void);
typedef void (*pk)(void);
参数和返回值要一致
定义和调用:
pk MyFunc = kk;
(*MyFunc)();
[解决办法]
void ( *fp )() = kk;
[解决办法]
typedef void (*pk)(void);
参数和返回值要一致
[解决办法]
pk pFunc;
pFunc = kk;
(*pFunc)(int);
[解决办法]
void kk(void);
typedef void (*pk)(void);
pk MyFunc = kk;
(MyFunc)();
测试通过
[解决办法]
返回类型 (*指针名)(参数。。。)
[解决办法]
#include <stdio.h>
typedef void (*fun_pointer_test)(int);
typedef void (*fun_pointer_foo)(void);
void test(int t)
{
printf( "test\n ");
}
void foo(void)
{
printf( "foo\n ");
}
int main()
{
fun_pointer_test pTest;;
pTest = test; //函数指针 与 指向的函数 其返回值与参数类型 ,参数个数必须相同
(pTest)(2);
fun_pointer_foo pFoo;
pFoo = foo;
(pFoo)();
getchar();
}
[解决办法]
针对你的:
void kk(void)
{
cout < < "kk " < <endl;
}
或其相同原型的函数作如下声明:
typedef void(*FuncKk)(void);//FuncKk是这一原型函数的指针类型;
这样你可以在你的程序中如下:
int main()
{
FuncKk _pfunc = kk;//定义一个FuncKk型的函数指针并初始化;
_pfunc();//用该函数指针调用kk函数
_PAUSE;
return 0;
}
上述程序行为良好,体现出标准的函数指针使用方法,即使用typedef声明函数指针的类型而不是函数指针变量,好处是一处声明,到处都可以使用而避免多次使用函数指针冗长的语法,还有typedef固有的灵活性。