我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结构体中添加成员变量呢

在C语言的结构体中是不能直接定义成员函数的,这点和C++不同,但是我们可以通过定义一个函数指针的方式来指向一个方法。

示例代码如下:

#include

#include

typedef struct node

{

int a;

void(*p)(int b);

}no;

void fun(int b)

{

printf("hello,%d\n",b);

}

int main()

{

no a = { ,fun };

a.p(a.a);

system("pause");

return ;

}

这段代码运行出来,控制台会打印出hello,1.这就表面明了,我们成功的调用了函数,并且成功的传递了参数进去。

C语言 结构体中的成员域偏移量

//C语言中结构体中的成员域偏移量 #define _CRT_SECURE_NO_WARNINGS #include #include # ...

读陈浩的《C语言结构体里的成员数组和指针》总结,零长度数组

原文链接:C语言结构体里的成员数组和指针 复制例如以下: 单看这文章的标题,你可能会认为好像没什么意思.你先别下这个结论,相信这篇文章会对你理解C语言有帮助.这篇文章产生的背景是在微博上,看到@Lar ...

C/C++中指向结构体变量的指针,调用指向的那个结构体中的成员

设p是指向结构体变量的指针,则可以通过以下的方式,调用指向的那个结构体中的成员: (1)结构体变量.成员名.如,stu.num. (2)(*p).成员名.如,(*p).num. (3)p->成员 ...

c语言结构体中的冒号的用法

结构体中常见的冒号的用法是表示位域. 有些信息在存储时,并不需要占用一个完整的字节,   而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1   两种状态,   用一位二进位即可.为了节省 ...

C语言 结构体中的零长度数组

/* C语言零长度数组大小和取值问题 */ #include #include #include s ...

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

这篇文章简单的叙述一下函数指针在结构体中的应用,为后面的一系列文章打下基础 本文地址:http://www.cnblogs.com/archimedes/p/function-pointer-in ...

结构体中string成员的问题

在结构体中定义字符串的成员的时候要注意定义成string有时候,在某些程序中给成员赋值会崩溃,但是不确定到底什么情况会崩溃.运行报错如下: Program received signal SIGSEG ...

C语言 结构体中属性的偏移量计算

//计算结构体偏移量 #include #include #include //详解:对于offscfof ...

Go结构体实现类似成员函数机制

Go语言结构体成员能否是函数,从而实现类似类的成员函数的机制呢?答案是肯定的. package main import "fmt" type stru struct { testf ...

随机推荐

Struts2 文件上传和文件下载

一.单个文件上传 文件上传需要两个jar包: 首先制作一个简单的页面,用于实现文件上传

单个文件上传

c语言的结构体能存放函数吗,在C语言结构体中添加成员函数相关推荐

  1. C++模板学习02(类模板)(类模板语法、类模板与函数模板的区别、类模板中的成员函数创建时机、类模板对象做函数参数、类模板与继承、类模板成员函数类外实现、类模板分文件编写、类模板与友元)

    C++引用详情(引用的基本语法,注意事项,做函数的参数以及引用的本质,常量引用) 函数高级C++(函数的默认参数,函数的占位参数,函数重载的基本语法以及注意事项) C++类和对象-封装(属性和行为作为 ...

  2. python apply_async函数_进程池未执行apply_async中添加的函数就直接结束了

    代码没有执行apply_async中添加的函数就直接结束了 from bs4 import BeautifulSoup import random import requests import pym ...

  3. c结构体中定义的成员指针赋值与结构体指针作为成员函数参数的使用

    c语言定义结构体可以直接声明结构体变量的,如下 struct Student{char *name; int age; }xiaoming 这样以来,我们就定义了一个结构体类型,同时声明了一个结构体变 ...

  4. C++结构体中定义虚拟函数

    C++结构体中定义虚拟函数 C++中一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体体现了数据结构和算法的结合.类可以从结构体继承.如下列示例: #ifndef PU ...

  5. C++:利用静态成员的方法实现对班费的管理。要求定义一个类Student,除了声明一个存放班费的静态成员,还要求分别定义一个上交班费的成员函数Contribute()、花费班费的成员函数Spend(

    C++:利用静态成员的方法实现对班费的管理.要求定义一个类Student,除了声明一个存放班费的静态成员,还要求分别定义一个上交班费的成员函数Contribute().花费班费的成员函数Spend() ...

  6. 总结C++中取成员函数地址的几种方法

    这里, 我整理了4种C++中取成员函数地址的方法, 第1,2,4种整理于网上的方法, 第3种cdecl_cast是我自己想到的. 其中, 第4种(汇编)的方法不能在VC6上编译通过. 推荐使用第1,2 ...

  7. 怎么将一个类的成员函数作为指针传递给另一个类的成员函数

    今天帮同学解决了一个问题,怎么把一个类的成员函数作为指针传递给另一个类的成员函数. 以前只接触过C语言中的函数指针: #include <iostream.h> void add(int ...

  8. python使用matplotlib可视化、使用annotate函数以及arrowprops参数在可视化图像中添加箭头和文本注释(arrow and text annotation)

    python使用matplotlib可视化.使用annotate函数以及arrowprops参数在可视化图像中添加箭头和文本注释(arrow and text annotation) 目录

  9. R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签

    R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签 目录 R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签

最新文章

  1. 这两天老是有兄弟问到Vue的登陆和注册,登陆成功留在首页,没有登录回到登录页面,现在我用最简单实用的方法实现(两分钟技就看懂)...
  2. 块级元素 Vs 内联元素
  3. 产品经理和UX设计师,变革已可期
  4. POJ 2114 - Boatherds
  5. 二叉树寻找祖先C语言,微软算法面试题:给定两个二叉树节点,寻找其最近共同祖先...
  6. python安装不了怎么办_python安装运行时提示不是内部或外部命令怎么办
  7. 如何测试前台获得的数据
  8. 2022 SpringBoot的房屋租赁平台 房屋展示平台 留学生房屋租赁平台
  9. C++虚复制构造函数,设置Clone()方法返回基类指针,并设置为虚函数
  10. 推荐:class文件反编译工具Java Decomplier
  11. centos 7 sogou input
  12. 日记/malloc函数与头文件
  13. vscode 快速生成vue模板
  14. (5)air202读取串口数据并上传到阿里云显示
  15. iPhone7 plus分辨率行不行
  16. 学习笔记之MyEclipse里各个文件名前的小标记都代表的意思
  17. 大数据----2.基础环境搭建
  18. element cascader组件动态加载数据
  19. 词根词缀学单词【3】
  20. mdpi的手机_APP设计尺寸

热门文章

  1. Excel: xls、xlsx最大行列区别
  2. [送给她]最近比较火的给她推送天气,恋爱倒计时等功能教程
  3. 女性网站在中国将大有可为
  4. Go语言学习笔记—golang操作MySQL数据库
  5. 正则表达式判断是否mac地址 java_使用正则表达式判断字符串是否为MAC地址
  6. win10-你需要来自XXX的权限才能对此文件夹进行更改 转载
  7. 约瑟夫问题-pythonc++
  8. Python基础阶段练习必备项目——文字对战游戏
  9. flashdevelop java_FlashDevelop使用详解教程
  10. Lucene加中文分词paoding调研结果