博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言函数指针
阅读量:5739 次
发布时间:2019-06-18

本文共 930 字,大约阅读时间需要 3 分钟。

hot3.png

    这是通过函数指针,实现了调用一个宏定义的方法直接计算不同类型图形的面积的例子。大概形象说明了函数指针的用法:

    这应该是重载,不知道多态的话 还有什么更好的例子: 

#include 
#define RECTANGLE 0#define ANGLE 1typedef struct angle_struct{    int t;      double a;      double b;} angle_struct ;typedef struct rectangle_struct {    int t ;    double a;    double b;}rectangle_struct;double caculate_angle( double a,double b){    return a*b/2;}double caculate_rectangle( double a, double b){    return a*b;}// 函数指针表double (*caculate_tbl[])(double , double ) = { caculate_rectangle , caculate_angle };#define caculate_area(z) caculate_tbl[z.t](z.a, z.b)int main(){    angle_struct angle;    angle.t = ANGLE;    angle.a=1;    angle.b=2;    rectangle_struct rectangle;    rectangle.t = RECTANGLE;    rectangle.a = 1;    rectangle.b = 2;    printf("the area of rectangle is %f and angle is %f \n", caculate_area(rectangle), caculate_area(angle));    return 1;}

转载于:https://my.oschina.net/u/929415/blog/220491

你可能感兴趣的文章
mysql增量,MySQL完全、增量的备份与恢复
查看>>
matlab程序复制出现乱码,matlab代码或中文复制到word就变成乱码怎么办?
查看>>
java writer append,Java StringWriter append()方法
查看>>
动态矩阵 matlab代码,动态矩阵控制
查看>>
用php实现一个音频播放的代码,用VBS实现音乐播放的多个代码小结
查看>>
larry oracle aws,AWS成为靶子 甲骨文掐住亚马逊的七寸猛打
查看>>
linux原生迅雷文本模式,ubuntu 下运行原生的迅雷
查看>>
linux系统真正优势学习方法,Linux系統真正的優勢以及學習方法,linux優勢學習方法...
查看>>
上海师范大学c语言考卷答案,上海师范大学C语言期末考试标准试卷.doc
查看>>
cof文件在C语言中怎么引入,COF文件擴展名: 它是什麼以及如何打開它?
查看>>
android imageview旋转动画,Android UI之ImageView实现图片旋转和缩放
查看>>
android屏幕录制功能,Android利用ADB进行屏幕录制
查看>>
gt240m x86 android,国产平板福音!INTEL ATOM x86_64位Xposed框架,Android5.1(lolipop)适用...
查看>>
android7.1自带壁纸,RK3399 Android7.1 修改壁纸
查看>>
android系统文件重命名文件格式,重命名下载后的文件系统文件中的PhoneGap的Android...
查看>>
Android设备参数,android获得设备的参数
查看>>
Cocos2d-x Eclipse下程序运行产生错误Effect initCheck() returned -1
查看>>
oracle命令行格式化输出的几个常用命令
查看>>
Drupal8系列(四):主题制作的前期准备-Ubuntu 14.04 LTS
查看>>
自动化运维与网站安全技术沙龙活动分享
查看>>