C语言结构体中的函数指针

C语言结构体中的函数指针内容由小编收集整理,希望对您的 学习有所帮助!更多内容请关注应届毕业生考试网!

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。所以,标准C中的结构体是不允许包含成员函数的,当然C++中的`结构体对此进行了扩展。那么,我们在C语言的结构体中,只能通过定义函数指针的方式,用函数指针指向相应函数,以此达到调用函数的目的。

1. 函数指针

一般的函数指针可以这么定义:

int(*func)(int,int);

表示一个指向含有两个int参数并且返回值是int形式的任何一个函数指针. 假如存在这样的一个函数:

int add2(int x,int y)

{

return x+y;

}

那么在实际使用指针func时可以这样实现:

func=&add2; //指针赋值,或者func=add2; add2与&add2意义相同

printf("func(3,4)=%d"n",func(3,4));

事实上,为了代码的移植考虑,一般使用typedef定义函数指针类型.

typedef int(*FUN)(int,int);

FUN func=&add2;

func();

2.结构体中包含函数指针

其实在结构体中,也可以像一般变量一样,包含函数指针变量.下面是一种简单的实现.

#include "stdio.h"

struct DEMO

{

int x,y;

int (*func)(int,int); //函数指针

};

int add2(int x,int y)

{

return x+y;

}

void main()

{

struct DEMO demo;

demo.func=&add2; //结构体函数指针赋值

printf("func(3,4)=%d"n",demo.func(3,4));

}

结构体自定义指针函数c语言,C语言结构体中的函数指针相关推荐

  1. C语言printf重入,单片机中printf函数的重映射

    单片机中printf函数的重映射 一.源自于:大侠有话说 1.如果你在学习单片机之前学过C语言,那么一定知道printf这个函数.它最最好用的功能 除了打印你想要的字符到屏幕上外,还能把数字进行格式化 ...

  2. java 7.函数-递归_带有谓词的Java中的函数样式-第2部分

    java 7.函数-递归 在本文的第一部分中,我们介绍了谓词,这些谓词通过具有返回true或false的单一方法的简单接口,为Java等面向对象的语言带来了函数式编程的某些好处. 在第二部分和最后一部 ...

  3. java中main()函数的返回值是什么_Java中main()函数的返回值类型是什么

    Java中main()函数的返回值类型是什么 答:void 在单纯形表的终表中,若非基变量的检验数有0,那么最优解 答:无穷多 中国大学MOOC: 不属于现代区位理论的是( ) 答:中心地理论 不属于 ...

  4. format函数python的顺序_[转载] Python中format函数用法

    Python中format函数用法 format优点 format是python2.6新增的格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能 ...

  5. python中函数的参数_Python小知识-Python中的函数参数(基础篇)

    0 总述 这个题目分为2篇,第一篇基本上是概念以及实例,有个相对系统的认识,第二篇想写的深入一些,不同参数类型的区别以及和c/c++的函数参数对比下异同-下面开始是第一篇的内容啦- Python中的函 ...

  6. 计算机一级vlookup函数的使用方法,电子档Excel中vlookup函数的使用方法(图解详细说明)...

    摘要: 在平时的工作中,相信很多问题在学校学习的难以用在工作当中,但是没学习到的知识点倒是出现在了我们的工作中,本文我将给大家以生动的图解(偷笑)加说明的方式详细介绍Excel中vlookup函数的使 ...

  7. python中input()函数的返回是什么类型_Python中input函数的用法是什么?

    "input()"函数是输入函数,用于接受一个标准输入数据,且返回string类型.在Python3中,去除了"raw_input()"函数,仅保留了" ...

  8. python中用什么函数读取字符串_如何在Python中获得函数名作为字符串?

    在Python中,如何在不调用函数的情况下以字符串的形式获得函数名? 1 2 3 4def my_function(): pass print get_function_name_as_string( ...

  9. python中函数type可以测试对象类型_Python中type函数type()显示对象的类型,dir函数dir()显示的是对象可用的方法。_学小易找答案...

    [判断题]new_word = word.upper() 这一语句表示将word这个变量的值全部小写并赋给新变量new_word. [单选题]All of the students have fini ...

  10. 计算机排位函数升序是0还是1,Excel中Rank函数排序的方法,包含相同数字按顺序排位和分段排序-excel排序...

    在 Excel 中,Rank函数用于实现一个数字在指定数字列表中的排位,并且可以通过拖动的办法实现对整个数字列表的自动排序.Rank函数共有三个参数,前两个为必选项,后一个为可选项:如果省略可选项,将 ...

最新文章

  1. 3最短路的几种解法 ------例题 最短路
  2. python数据结构学习笔记(五)
  3. Windows 10如何使用文件历史记录备份个人文件
  4. 拼接字符串时去掉最后一个多余逗号
  5. 运维工程师必备技能:网络排错
  6. 如何优化WebRTC提升直播体验?
  7. 从小害怕数学的他,却成为了科普数学教育的数学家
  8. 廖雪峰JS教程--条件判断
  9. Mac OS X 10.7.2 Lion下快速锁定屏幕
  10. HDU 2084 数塔
  11. 窥探源码,让我更加优雅的使用Kafka生产者!
  12. mysql c3p0 释放连接池_mysql – 如何阻止c3p0连接池隐藏连接异常的原因?
  13. linux下加载ISO镜像的方法
  14. Python基础 day4
  15. STM32学习——GPIO应用之按键实验
  16. python爬取贴吧网页信息
  17. 2022年中国物联网行业研究报告丨附下载
  18. 浅析机器学习算法的应用场景!
  19. springboot项目报错-The Bean Validation API is on the classpath but no implementation could be found
  20. 调整Oracle用户密码期限及错误登录次数

热门文章

  1. 完数什么意思_数学中质数和合数是什么意思
  2. Python官方编译器的安装
  3. “第七届中国云计算应用论坛”成功召开
  4. 中国阀门喷射式喷墨打印机市场深度研究分析报告
  5. 产品经理初体验:山高水深路远
  6. 特征筛选:重要性评估
  7. NOI 2005 聪聪可可
  8. python多用户B2C商城系统毕业设计开题报告
  9. 宝哥哔哔|去中心化借贷协议Trister‘s Lend主网已经上线全面内测已经开始!
  10. 如何快速剪辑音频,简单易上手