typedef void (*pfun)(void); // pfun 类型是 void(*)(void) pfun main; // 定义一个函数:void (*main)(void); 在博客上看到一个经典的函数指针用例: #include<stdio.h> typedef int (*FP_CALC)(int, int); //注意这里不是函数声明而是函数定义,它是一个地址,你可以直接输出add看看 int add(in...
typedef void (*pfun)(void); // pfun 类型是 void(*)(void) pfun main; // 定义一个函数:void (*main)(void); 在博客上看到一个经典的函数指针用例: 为保护原创作者的权益,以下例子代码不作修改: <来源网址:http://www.cnblogs.com/shenlian/archive/2011/05/21/2053149.html> #include<stdio.h> ...
typedefinta[10];// a 类型是 int[10];(存放int型数据的数组)aarr;// 定义一个数组:int arr[3];typedefvoid(*p)(void);//p 类型是void ( * )voidpA;//是指void(*A)(void); 语法上typedef属于存储类声明说明符。 a[10]不是int的别名,(*p)(void)不是void的别名。 上面的语句把a声明为具有10...
void TEST2(void) { printf("test2\n"); }//函数定义 void TEST3(void) { printf("test3\n"); }//函数定义 ... ... //声明 typdef void (*func)(void); 再来定义一个调用的函数 void test(int i) { func vTask[3] = {&TEST1, &TEST2, &TEST3}; func fun = vTask[i]; (*fun)()...
2019-12-11 17:09 − 指针总结 int *p;int **p;int a[10];int a[2][3];int *p[5];int (*p)[3];int *pfun(void);int (*p)(void); 一级指针常和一维数组联系在一起用,形式如下int a[]; int *p = a;会变化出a[i] = *(a... 懵逼二叉树 0 148 typedef 定义结构体数组或其他数...
定义了一个函数指针变量pFun,它指向一个参数为int,返回值为char类型的函数。随后定义了函数glFun,其符合pFun所指向函数的类型。在main函数中,将glFun的地址赋给pFun。通过*pFun取出了glFun的内容,并传入参数2。
void *PFUNC(void);这你应该能够理解吧?这是一个函数,名字为PFUNC,此函数没有任何参数,返回值是一个指向void的指针。明白?接下来,加上括号,成了void(*PFUNC)(void);这里(*PFUNC)优先级最高,它表示,PFUNC是一个指针。而且这个指针指向一个函数。但它不能随随便便指向任意函数,必须是指...
char glFun(int a){ return;} void main() { pFun = glFun; (*pFun)(2); } typedef的功能是定义新的类型。第一句就是定义了一种PTRFUN的类型,并定义这种类型为指向某种函数的指针,这种函数以一个int为参数并返回char类型。后面就可以像使用int,char一样使用PTRFUN了。 第二行的...
typedef void (*Fun)(void);这样的话Fun代表的就不是变量了,而是代表了一种新的类型。用Fun来定义...
typedef void (*Func)(void);//声明 至此,我们就已经构造好了通用函数 还需要定义一个调用的函数 void gTASK(char i) { // Func vTask[3] = {&TASK1, &TASK2, &TASK3}; Func vTask[3] = {TASK1, TASK2, TASK3}; Func fun = vTask[i]; ...