void hello(void) { printf("你好!"); }void bye(void) { printf("再见!"); }void ok(void) { printf("好的!"); }typdef void (*funcptr)(void);这样就构造了一个通用的函数你用的时候可以这样:void speak(int id){ funcptr words[3] = {&hello, &bye, &ok}; funcptr fun = words[id]...
void hello(void) { printf("你好!"); } void bye(void) { printf("再见!"); } void ok(void) { printf("好的!"); } typdef void (*funcptr)(void); 这样就构造了一个通用的函数 你用的时候可以这样: void speak(int id) { funcptr words[3] = {&hello, &bye, &ok}; funcptr fun =...
typedef void ( *funcptr)(void); //定义指针类型 void fun1(void) //定义函数一 { cout << "This is fun1" << endl;} void fun2(void) 定义函数二 { cout << "This is fun2" << endl;} int main(){ funcptr p1; //定义了一个该类型的指针p1 p1 = fun1; //p1指向...
我们同样可以使用typedef声明一个函数指针类型:func_t typedef int (*func_t)(int a, int b); func_t fp; // 定义一个函数指针变量 写个简单的程序测试一下,运行OK: typedef int (*func_t)(int a, int b); int sum (int a, int b) { return a + b; } int main (void) { func_t fp =...
int a,a是变量名,加上typedef,a是int的别名;void (*funcptr)(), funcptr同样只是一个变量名...
这句定义了一种名叫FuncPtr的函数指针,这种指针可指向返回值为空,参数为空的函数。例:void myfunc0(){ printf("func0");} void myfunc1(){ printf("func1");} int main(){ FuncPtr pf;pf = &myfunc0;(*pf)();pf = &myfunc1;(*pf)();return 0;} ...
core.h>usingnamespacestd;voidfunc(void){cout<<"func\n";}typedefvoid(*TFUNC)(void);usingUFUNC=void(*)(void);intmain(intargc,char**argv){//1. 直接定义函数指针void(*fp)(void)=func;fp();//2. typeptr定义一种类型TFUNCfp1=func;fp1();//3. using xx = yyUFUNCuf=func;uf();return...
#include<stdio.h>typedefint*int_ptr_t;/* const int_ptr_t 被转换成了 int *const, 变成了一个指针常量 */voidfunc(constint_ptr_t cfg){return;}intmain(void){constintdata=10;/* &data 被转换成了 const int*, 是一个指向常量的指针 */func(&data);return0;} ...
void main() { pFun = glFun; (*pFun)(2); } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 第一行定义了一个指针变量pFun.它是一个指向某种函数的指针,这种函数参数是一个int类型,返回值是char类型。只有第一句我们还无法使用这个指针,因为我们还未对它进行赋值。
typedef char (CA::*PTRFUN)(int); PTRFUN pFun; void main() { pFun = CA::lcFun; ca.(*pFun)(2); } 在这里,指针的定义与使用都加上了“类限制”或“对象”,用来指明指针指向的函数是那个类的。这里的类对象也可以是使用new得到的。比如: ...