zoukankan      html  css  js  c++  java
  • 函数指针和typedef的应用

     首先写个函数指针的例子

    int (*pfun)(int, int);


        通过括号强行将pfun首先与“*”结合,也就意味着,pfun是一个指针,接着与后面的“()”结合,说明该指针指向的是一个函数,然后再与前面的int结合,也就是说,该函数的返回值是int。由此可见,pfun是一个指向返回值为int的函数的指针。

        虽然它们只有一个括号的差别,但是表示的意义却截然不同。函数指针的本身是一个指针,指针指向的是一个函数。指针函数的本身是一个函数,其函数的返回值是一个指针。随好的解释还是要靠例子,下面是实例:

    head.h:


    #ifndef _TYPEDEFPTR_H
    #define _TYPEDEFPTR_H
    
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef void (*FPTR)(int);
    
    extern void printf_a(int a);
    extern void printf_b(int b);
    
    
    #endif
    

    src.c:

    #include "head.h"
    #include <stdio.h>
    
    
    void printf_a(int a)
    {
    	printf("a = %d\n",a);
    }
    
    void printf_b(int b)
    {
    	printf("b = %d\n",b);
    }
    

    main.c:

    #include "head.h"
    
    FPTR fptr1,fptr2;
    
    int main(void)
    {
    	fptr1 = printf_a;
    	fptr2 = printf_b;
    	
    	fptr1(4);
    	fptr1('g');
    	fptr2(56);
    	fptr2('d');
    	
    	return 0;
    }
    

    运行结果:

    a = 4
    a = 103
    b = 56
    b = 100




  • 相关阅读:
    高级软件工程第四次作业(C++)
    248&258--高级软件工程第三次作业
    高级软件工程第二次作业--四则运算生成器
    2017282110258--高级软件工程--齐爽爽第一次作业
    一元多项式求导_9
    成绩排名_8
    写这个数 _7
    我要通过_6
    月饼_5
    Hadoop的读写类调用关系_图示
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007721.html
Copyright © 2011-2022 走看看