//1.完整版
#include <stdio.h>
#include <stdlib.h>
struct audio_stream_in {ssize_t (*read)(struct audio_stream_in *stream);
};struct stream_in {struct audio_stream_in stream;int standby;int source;
};
struct stream_in *in = NULL;static ssize_t in_read(struct audio_stream_in *stream){//将audio_stream_in类型转化为stream_in类型;注:audio_stream_in成员地址是属于stream_in结构体,并且是stream_in首地址.  struct stream_in *s_in = (struct stream_in *)stream;printf("s_in->standby = %d\n",s_in->standby);printf("s_in->source = %d\n",s_in->source);return 0;
}void test(struct audio_stream_in **stream_in){in = (struct stream_in*)malloc(sizeof(struct stream_in));in->standby = 25;in->source = 10;in->stream.read = in_read;  *stream_in = &in->stream;
}//通过结构体成员获取结构体首地址.
#define rt_container_of(ptr, type, member)   \((type *)((char *)(ptr) - (unsig

结构体第一个成员是结构体,则为父结构体首地址demo(六)相关推荐

  1. c语言的结构体能存放函数吗,在C语言结构体中添加成员函数

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

  2. c语言 将结构体放在flash,stm32的内部flash读写操作(含结构体的保存)

    不同的stm32单片机的flash大小不同,这个需要查阅芯片手册或者查看STM32CubeMX软件. stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实 ...

  3. c语言把结构体首地址放入指针,C语言基础———指针,结构体指针,函数指针

    指针基础 一 指针就是地址,地址就是指针.指针存储的是内存的地址. 二 指针的定义 1.&表示取址运算符,&a 可以取到 a 在内存中的地址;打印地址的占位符为(%p),printf( ...

  4. C和指针之结构体大小和成员变量位置距离结构开始存储的位置偏移字节

    1.问题 1).结构体大小 结构体成员的内存分配满足下面三个条件   2 结构体第一个成员的地址和结构体的首地址相同   3 结构体每个成员地址相对于结构体首地址的偏移量是该成员大小的整数倍,如果不是 ...

  5. C语言结构体里的成员数组和指针

    单看这文章的标题,你可能会觉得好像没什么意思.你先别下这个结论,相信这篇文章会对你理解C语言有帮助.这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接.微博截图如 ...

  6. 宏定义来实现一个结构体成员相对于该结构体首地址的偏移量

    #define my_offerset(type , exp) ((int)&(((type*)0)->exp))//因为是求结构体的成员内存偏移.结构体会定义一种新的数据类型 所以ty ...

  7. 结构体 CString QString 成员赋值出错

    结构体 CString QString 成员赋值出错 参考:http://blog.csdn.net/lzyzuixin/article/details/6230981 问题如下: 我定义了如下的一个 ...

  8. 【C 语言】结构体 ( 结构体中嵌套一级指针 | 分配内存时先 为结构体分配内存 然后再为指针分配内存 | 释放内存时先释放 指针成员内存 然后再释放结构头内存 )

    文章目录 一.结构体中嵌套一级指针 1.声明 结构体类型 2.为 结构体 变量分配内存 ( 分配内存时先 为结构体分配内存 然后再为指针分配内存 ) 3.释放结构体内存 ( 释放内存时先释放 指针成员 ...

  9. 通过结构体某个成员的地址计算结构体首地址 (转)

    最近在CU论坛上有很多人在问这样一个问题:给出一个结构体成员的地址计算该结构体的起始地址.其实这个题我之前也没有接触过,据说内核代码中有这样用的,但还没有看到.不过觉得这个题的解决方法还是有一定技巧的 ...

最新文章

  1. 10个必知必会的PyCharm使用技巧!
  2. 10万元奖金助力AI加速药物研发!小分子预测大赛来啦
  3. 4种动态加载JS的方法
  4. 作为一个甘肃天水人,我对罐罐茶有一种特殊的情怀
  5. AsyncHttpClien访问网络案例分析
  6. Java通过反射执行方法
  7. sd卡测速工具_拍完照回家发现SD卡损坏,拯救你的照片就用这个办法!
  8. [原创]游戏合服时如何避免主键冲突
  9. Linux 上的数据可视化工具
  10. oracle instance client 下载,安装Oracle Instance Client
  11. 化繁为简、敏捷迭代,轻量化小程序时代已然到来
  12. 汇编DOS与Windows Masm编译运行代码步骤详解
  13. 3dmax软件怎样一键取消视图背景网格
  14. 爱普生打印机无法正常工作的解决方法
  15. 2018 微信数据报告,看看你的微信用了多少天?
  16. 解读华为云应用平台ROMA,黑科技实现一站式政企上云
  17. mac 蓝牙搜索不到SONY WI-1000X 耳机型号
  18. linux 重新运行命令,如何在Linux中重新运行最后执行的命令?
  19. Python OpenCv 车牌检测识别(边缘检测、HSV色彩空间判断)
  20. JQuery实现音乐导航栏的简单实现

热门文章

  1. 거든---表示条件,后接祈使,劝诱,意志语句
  2. linux tomcat配置https
  3. 安装 SQL Server Compact Edition 及 与PC 数据同步的部署
  4. pdfpcell输出换行_poi导出Excel(cell单元格里的一串文字,换行显示,设置字体)...
  5. laydate 周_宝来屋:5天168万!海盐周大生新店如何赢过竞品实现可持续化客流-广告随意贴...
  6. 微信公众号-通用百度翻译代码实现
  7. Javascript变量的使用第三课
  8. Java中List集合的三种遍历方式(全网最详)
  9. anaconda新建环境_机器学习实战-开发环境安装
  10. python plot 时间_python – 在matplotlib中绘制时间与日期